
#include "Core.h"
#include "Descriptor.h"

#include <math.h>

#include <vector>
#include <utility>
#include <algorithm>
using namespace std;

Descriptor::Descriptor(const unsigned char patch[PATCH_SIZE][PATCH_SIZE])
{
	// init
	for(int i=0;i<DES_LEN;i++) {
		v[i] = 0;
		bit[i] = 0;
	}
	good = false;
	noBitOn = false;
	
	float grad[PATCH_SIZE][PATCH_SIZE];
	float orie[PATCH_SIZE][PATCH_SIZE];
	int i,j;
	
	// count the gradient and orientation
	for(i=0;i<PATCH_SIZE-1;i++) {
		for(j=0;j<PATCH_SIZE-1;j++) {
			float v = patch[i][j];
			float vy = patch[i+1][j];
			float vx = patch[i][j+1];
			float dx = vx-v, dy = vy-v;
			grad[i][j] = sqrt(dx*dx+dy*dy);
			orie[i][j] = atan2(dy,dx);
			//printf("%f ",orie[i][j]);
		}
		//puts("");
	}
	//printf("%f,%f\n",grad[30][30],orie[30][30]);
	
	for(i=0;i<PATCH_SIZE;i++) {
		for(j=0;j<PATCH_SIZE;j++) {
			if(grad[i][j] == 0)
				continue;
			float x = j - (PATCH_SIZE/2);
			float y = i - (PATCH_SIZE/2);
			float cosTheta = cos(orie[i][j]);
			float sinTheta = sin(orie[i][j]);
			float xp = cosTheta*x - sinTheta*y;
			float yp = sinTheta*x + cosTheta*y;
			inc(xp,yp,orie[i][j],grad[i][j]);
		}
	}
	
	// check if more than DES_LEN*TOP_RATIO bits can be set on
	check();
	
	setTopbit();

	setSketch();
}

bool mycompare( pair<int,float> a, pair<int,float> b)
{
	return a.second > b.second;
}

void Descriptor::setTopbit()
{
	vector< pair<int,float> > node;
	int i;

	for(i=0;i<DES_LEN;i++)
		node.push_back( make_pair(i, v[i]) );

	sort(node.begin(),node.end(),mycompare);

	for(i=0;i<DES_LEN*TOP_RATIO;i++) {
		if( v[node[i].first] == 0)
			break;
		bit[ node[i].first ] = 1;
	}
}

void Descriptor::check()
{
	int i,count = 0;
	for(i=0;i<DES_LEN;i++)
		if(v[i] != 0)
			count ++;
	good = ( count >= TOP_RATIO*DES_LEN );
	noBitOn = (count == 0) ;
}

void Descriptor::setSketch()
{
	int i,j,k;
	for(i=0;i<NUM_SKETCH_PER_DES;i++) {
		for(j=0;j<SKETCH_SIZE;j++) 
			sketches[i].tuple[j] = -1;
		for(j=0;j<SKETCH_SIZE;j++) {
			for(k=0;k<DES_LEN;k++) {
				if( bit[ MinHashSeq[i][j][k] ] == 1 ) {
					sketches[i].tuple[j] = k;
					break;
				}
			}
		}
	}
}

inline void Descriptor::inc(float x,float y,float th,float g)
{
	int pos = mapX(x) * NYBIN * NTHBIN + mapY(y) * NTHBIN + mapTheta(th);
	v[pos] += g;
}

inline int Descriptor::mapTheta(float t)
{
	return (int) ( (t-thLow)*thMul )  % NTHBIN;
}
inline int Descriptor::mapX(float x)
{
	int a =  ( x - xLow ) * xMul;
	return a != NXBIN ? a : a - 1;
}
inline int Descriptor::mapY(float y)
{
	int a =  ( y - yLow ) * yMul;
	return a != NYBIN ? a : a - 1;
}

const float Descriptor::xLow = ( -PATCH_SIZE/2 )* sqrt(2);
const float Descriptor::yLow = ( -PATCH_SIZE/2 )* sqrt(2);
const float Descriptor::thLow = -M_PI;
const float Descriptor::xMul = (float) NXBIN / ( PATCH_SIZE * sqrt(2) );
const float Descriptor::yMul = (float) NYBIN / ( PATCH_SIZE * sqrt(2) );
const float Descriptor::thMul = (float) NTHBIN / (M_PI *2);

const int Descriptor::MinHashSeq[NUM_SKETCH_PER_DES][SKETCH_SIZE][DES_LEN] = {
	110,290,11,69,209,142,17,293,164,350,115,322,361,2,75,281,400,375,153,116,143,329,420,133,363,192,27,275,104,213,352,427,273,288,396,114,341,413,201,280,66,227,406,79,259,176,106,0,328,270,182,165,163,43,391,202,49,105,149,318,387,389,141,408,428,354,8,33,421,385,25,311,196,31,82,212,423,358,255,287,23,122,345,19,126,44,120,131,332,1,238,264,376,218,157,5,225,193,155,179,265,232,180,331,339,251,395,338,223,113,92,48,61,127,190,67,263,124,355,243,392,159,74,337,151,365,200,334,419,309,301,125,407,204,187,50,368,283,244,170,118,205,181,154,401,12,99,236,240,147,233,172,266,32,210,161,156,178,221,78,85,135,145,356,397,28,276,41,414,14,22,29,34,418,250,36,320,268,195,382,64,235,346,242,217,335,121,94,278,272,207,123,150,294,410,208,70,84,186,6,224,9,60,175,430,128,129,87,137,289,261,26,241,279,245,138,403,45,359,327,393,373,304,83,160,198,103,367,76,73,167,291,215,219,119,426,197,184,222,174,364,214,112,206,262,47,347,111,148,308,340,100,130,323,312,292,35,306,58,353,42,91,319,330,271,7,134,315,253,374,384,95,370,13,183,136,313,307,239,258,405,56,228,146,317,257,102,117,68,234,51,107,349,348,416,88,89,366,109,189,333,3,394,267,269,246,152,173,274,24,15,390,284,360,371,81,65,299,132,98,303,139,39,402,20,54,314,260,285,381,357,248,362,62,203,411,422,388,10,342,229,71,369,378,38,77,415,216,404,90,101,169,30,296,282,63,52,40,231,302,18,383,194,351,254,431,199,80,300,140,324,286,188,386,344,166,4,226,316,158,325,86,398,108,230,310,93,171,380,249,177,16,379,277,21,372,252,424,144,377,59,46,55,429,298,321,399,305,237,185,97,220,191,326,37,336,343,412,409,297,57,168,295,247,211,425,256,96,53,72,162,417,281,375,339,172,259,177,394,2,309,60,288,96,255,257,238,414,356,15,13,295,103,178,423,415,101,253,268,256,367,391,291,133,340,314,140,374,319,239,1,243,75,362,236,399,413,17,357,142,304,41,389,67,179,34,154,427,360,428,30,411,262,285,81,326,79,287,388,282,119,165,135,95,16,353,280,317,76,163,242,112,318,91,99,347,338,68,337,299,207,393,286,378,273,122,182,380,53,229,61,397,176,237,316,5,214,401,323,160,0,110,324,113,266,136,379,171,321,376,372,250,18,334,90,404,219,58,352,109,88,27,300,402,342,315,31,144,358,147,157,72,269,98,82,276,195,327,204,106,156,407,97,213,11,386,35,290,333,310,387,396,32,161,424,251,384,197,19,39,308,168,20,258,25,40,260,74,111,294,151,405,369,114,351,10,55,198,234,398,395,217,406,7,225,275,66,245,385,361,138,108,261,37,313,222,271,363,306,284,71,185,38,173,331,121,418,244,278,126,336,322,354,202,228,194,218,184,381,116,230,410,150,325,80,162,400,320,169,208,87,6,293,248,22,265,64,180,191,297,59,186,100,134,159,422,84,312,246,118,4,421,364,73,371,8,232,137,54,254,146,23,105,167,44,311,78,193,368,403,9,153,305,94,277,45,77,189,417,203,12,330,252,279,70,124,43,247,348,42,120,429,47,335,196,382,419,155,49,129,272,345,69,46,283,224,115,377,270,152,128,52,425,344,231,123,149,89,50,145,332,329,125,190,102,199,346,28,350,215,14,201,170,192,343,3,373,83,355,56,366,104,132,412,127,166,267,370,249,65,390,301,235,139,233,164,92,409,24,240,365,143,264,148,210,431,241,62,86,212,220,303,93,48,263,420,21,426,174,107,51,158,416,221,209,26,408,392,216,117,226,292,383,307,36,223,187,63,227,211,205,175,200,359,302,29,430,328,141,296,181,33,349,57,183,85,188,130,274,298,341,206,289,131,197,351,67,196,158,200,28,258,112,194,335,365,358,324,353,399,171,30,249,375,128,83,277,244,232,49,355,216,410,199,425,78,117,288,396,286,81,369,361,383,37,295,61,86,33,247,360,38,166,172,151,180,90,301,272,254,423,15,42,9,35,101,21,18,129,100,376,91,431,276,287,154,352,354,27,307,372,222,148,108,280,418,123,5,165,281,386,310,408,134,190,124,71,118,234,359,363,127,409,41,316,54,119,23,264,142,246,68,89,193,257,282,412,233,147,367,347,125,32,52,371,46,94,413,58,210,156,168,245,135,260,230,322,62,348,402,243,57,14,74,217,188,421,80,212,320,183,136,6,304,13,64,294,189,79,164,374,339,326,422,140,8,109,337,0,36,250,265,343,385,44,215,235,167,138,323,327,131,157,397,401,336,342,296,53,268,271,87,221,145,229,384,242,202,75,237,120,379,269,73,60,404,262,198,259,84,174,333,306,20,214,391,256,204,393,179,236,65,261,175,132,4,283,98,99,273,97,275,252,356,387,346,2,429,116,191,390,373,417,92,207,263,420,47,209,104,225,153,329,96,111,303,430,159,357,149,19,332,416,146,338,224,102,169,130,241,231,208,24,50,270,274,253,344,341,25,267,43,377,325,133,55,105,85,155,150,251,218,144,389,388,278,398,201,192,255,203,178,298,315,56,176,309,103,69,292,88,350,7,219,34,26,39,122,177,139,226,170,403,395,378,308,313,1,163,419,223,141,137,143,126,405,289,291,321,248,293,394,51,59,415,427,368,426,3,213,45,162,40,186,182,16,184,82,319,345,428,414,392,72,284,328,349,205,11,290,106,279,239,228,115,302,160,48,370,382,181,17,152,317,407,400,334,121,93,114,12,22,318,195,330,285,299,206,187,424,300,305,110,411,362,63,227,314,266,161,366,380,364,29,10,70,340,107,311,185,381,238,31,220,77,173,113,240,297,66,211,312,76,95,406,331,110,274,305,415,72,404,47,17,203,117,73,430,127,320,269,131,394,235,122,339,125,84,382,271,358,421,403,213,284,239,19,301,54,241,56,185,251,53,179,55,143,322,77,272,40,207,9,38,312,188,111,332,418,315,192,50,152,268,375,230,313,365,57,63,177,61,325,36,285,12,262,26,216,259,147,378,119,273,401,266,74,345,212,233,330,209,282,137,118,366,210,121,426,238,52,18,144,69,267,67,3,373,353,105,416,134,425,0,174,293,249,265,310,92,356,116,331,155,182,397,175,176,29,154,41,303,407,386,423,130,7,255,33,431,283,164,85,287,126,23,371,129,173,44,237,28,346,317,360,195,81,165,142,25,79,215,138,290,34,100,370,324,427,48,411,211,275,102,379,49,316,390,341,417,377,161,90,21,82,247,420,228,422,32,319,196,243,197,75,4,258,351,169,355,288,156,194,298,335,328,186,410,108,232,306,364,218,270,204,189,236,318,124,208,363,133,132,374,221,400,22,30,289,385,256,419,103,309,291,140,39,257,158,334,280,428,343,14,261,412,277,300,337,20,340,217,183,392,202,229,199,323,225,348,338,27,198,234,224,71,65,387,160,326,141,153,15,245,344,244,42,357,388,1,151,86,295,200,223,349,171,11,278,45,336,329,393,299,264,381,347,214,88,405,396,302,51,135,254,294,8,354,163,150,359,87,149,146,342,308,148,193,384,352,107,205,128,361,350,181,250,219,311,80,399,70,120,314,35,389,292,37,281,136,190,123,59,413,191,297,242,112,424,172,2,98,83,159,109,296,95,46,5,279,263,395,64,252,286,13,253,408,380,206,180,226,372,115,327,402,383,31,6,93,60,139,166,184,414,246,157,113,304,240,409,68,222,10,62,376,362,187,276,91,76,248,16,101,24,162,367,429,167,89,96,321,406,333,66,398,368,104,99,145,178,114,201,227,78,97,220,58,231,170,307,260,94,391,43,106,369,168,31,414,263,227,145,269,399,79,307,55,427,286,313,431,16,99,306,170,381,155,218,119,185,327,68,392,215,62,262,192,139,28,116,340,146,366,135,240,193,375,18,172,32,421,209,216,8,161,255,322,211,29,372,121,346,94,197,251,217,78,228,1,58,404,125,358,123,406,341,37,213,290,131,180,25,113,423,319,207,106,339,111,205,254,60,302,69,374,284,44,4,173,105,295,256,407,347,165,97,35,52,223,272,212,410,38,84,57,289,171,393,151,314,154,405,244,163,92,91,132,220,344,203,362,22,271,326,243,354,402,246,325,224,108,247,242,206,118,387,11,257,239,83,250,259,137,102,418,208,67,252,77,200,268,323,277,56,2,233,98,311,316,199,222,376,221,81,367,235,318,389,225,157,33,114,330,305,359,160,266,95,248,249,61,188,391,342,40,174,279,412,350,75,66,39,27,167,401,276,361,231,267,386,411,136,128,130,219,343,76,379,261,363,351,144,274,400,73,299,278,291,71,292,30,238,182,129,356,45,159,90,397,41,333,175,408,315,337,51,13,46,9,303,80,390,388,190,49,189,345,158,126,298,143,181,53,43,162,234,5,10,120,166,309,14,134,349,294,301,385,187,178,297,371,229,96,260,87,127,360,368,409,335,110,265,183,65,176,293,7,152,177,150,147,377,26,320,395,24,430,417,296,179,202,338,34,357,264,47,109,275,124,253,419,103,17,156,19,15,191,304,324,141,426,245,425,184,196,122,312,308,280,226,85,194,348,148,236,336,394,328,201,241,168,107,283,273,384,48,398,74,396,383,214,20,169,285,300,310,101,413,153,258,104,59,0,133,72,355,3,424,232,117,334,186,332,149,403,270,353,88,210,140,112,89,288,378,63,64,100,370,380,6,86,23,317,382,198,36,42,230,281,164,70,195,237,422,428,282,142,416,373,93,369,331,364,352,82,12,21,115,415,50,365,329,420,287,321,204,138,429,54,225,159,337,202,351,105,359,32,188,193,62,66,104,237,175,302,134,240,332,357,133,420,312,90,385,395,7,253,59,81,380,64,33,285,363,179,103,405,331,310,6,148,3,228,371,95,358,22,92,221,235,101,246,145,252,125,11,194,383,24,170,340,341,313,111,230,140,333,107,409,322,136,153,325,389,115,70,5,360,207,429,120,201,223,243,257,109,71,401,314,369,374,298,128,180,189,330,295,426,10,143,58,342,203,410,277,46,19,366,190,213,400,94,110,88,54,309,349,99,365,86,408,324,177,16,280,84,355,151,57,39,162,379,347,234,178,55,415,137,147,232,344,431,345,305,65,272,336,241,261,362,259,251,430,384,172,361,335,45,269,229,40,72,196,112,26,284,183,63,52,293,370,249,197,233,96,227,0,303,161,154,119,142,418,117,43,209,85,288,171,278,2,239,80,89,132,114,244,157,353,248,419,144,135,8,376,25,78,208,339,413,123,393,186,106,307,68,12,315,318,76,17,168,13,47,122,15,414,224,226,406,271,34,83,273,397,403,210,390,231,373,350,348,155,35,74,264,283,67,91,9,42,29,187,116,126,176,343,124,108,97,394,169,53,61,158,60,113,306,391,160,399,31,282,317,139,220,321,18,304,38,129,260,165,286,262,73,87,396,377,205,48,311,27,329,258,356,21,375,425,69,367,291,279,388,200,354,382,290,138,174,364,167,184,4,255,327,156,412,316,352,421,386,416,378,392,41,427,334,93,118,287,206,265,131,402,130,238,292,79,308,266,49,185,368,166,127,214,242,281,23,417,14,338,192,100,274,296,263,404,294,102,398,222,37,328,163,75,152,256,1,254,141,218,346,323,297,211,20,289,181,199,82,320,245,326,182,428,191,387,51,422,407,319,411,56,173,270,44,372,50,299,250,236,215,217,275,164,77,301,212,36,216,150,204,268,28,198,276,121,219,381,30,195,149,98,423,424,300,247,267,146,128,39,10,94,164,270,19,16,389,154,235,202,87,95,146,131,112,192,186,74,404,84,175,68,306,325,311,29,293,106,382,220,330,90,417,197,396,373,349,312,208,144,274,229,150,326,419,271,142,83,226,114,66,431,113,331,193,232,58,35,392,118,378,70,109,213,273,386,178,285,313,258,115,393,91,36,17,169,263,336,56,38,323,101,350,375,376,301,277,357,231,328,284,26,369,278,139,329,374,346,6,211,233,266,353,320,253,151,254,117,341,338,223,332,133,287,294,368,340,276,365,86,170,152,359,352,429,268,282,122,370,296,430,394,132,387,181,303,67,377,156,228,176,243,391,420,425,283,205,279,59,199,384,172,18,372,360,81,240,123,13,11,423,317,102,80,40,215,227,55,71,219,161,304,401,188,209,108,305,72,203,174,248,75,147,173,318,200,421,60,300,259,214,89,184,163,398,366,31,171,309,4,51,242,347,334,28,76,125,189,185,364,103,367,45,46,234,327,246,222,61,0,183,78,207,22,403,160,135,383,126,281,316,62,92,356,388,5,410,424,64,337,261,256,166,288,134,267,239,97,265,414,187,159,93,257,272,79,289,402,400,41,43,221,275,395,371,351,269,136,291,428,42,88,345,191,167,379,168,408,130,343,155,180,302,47,411,237,418,362,127,407,153,415,295,9,145,110,299,57,315,194,105,344,406,310,224,314,27,3,218,212,140,124,247,354,30,405,416,333,179,129,381,7,264,33,1,177,15,339,107,54,182,53,77,245,44,14,63,23,69,426,49,216,260,12,111,412,427,196,121,99,137,252,50,98,143,201,100,236,397,307,217,319,198,298,297,363,48,157,308,34,158,322,355,8,321,335,149,148,21,251,413,162,262,225,348,52,292,65,324,385,238,116,104,190,37,119,96,25,361,120,2,290,399,82,255,380,409,85,230,138,204,358,20,206,390,32,73,422,165,141,342,250,244,241,210,280,286,24,249,195,336,84,171,115,297,131,191,345,78,340,134,382,101,412,20,359,217,162,229,31,227,110,88,180,202,390,271,241,147,85,196,234,108,208,281,232,410,27,276,145,282,9,98,29,128,143,39,49,406,339,383,153,203,17,58,65,280,367,322,168,266,224,265,61,93,355,141,289,119,296,24,430,255,305,409,364,287,151,15,308,366,311,94,316,215,292,156,157,337,60,235,375,206,251,372,205,116,418,192,387,10,127,103,349,417,57,118,52,315,56,381,254,198,327,219,204,90,193,426,167,226,214,100,378,279,402,333,102,199,70,28,82,179,8,330,7,186,425,415,377,414,324,135,159,106,67,397,391,197,181,347,155,140,189,253,263,185,303,360,221,348,30,431,33,120,270,91,222,6,169,111,223,62,195,200,233,427,66,77,260,150,144,236,158,184,190,121,1,209,148,252,312,26,379,245,37,237,300,302,129,294,326,54,136,112,83,264,172,73,163,290,388,272,386,267,19,89,218,275,429,113,242,358,117,243,408,284,13,211,75,368,38,45,72,165,374,178,231,220,109,317,48,394,25,268,321,277,357,68,256,380,3,107,63,370,310,401,343,407,182,404,399,291,44,262,170,405,350,53,149,0,139,244,298,325,257,261,344,225,99,35,396,161,174,23,384,95,353,213,356,351,212,313,420,423,314,137,125,228,146,269,122,247,18,188,393,132,352,365,12,97,318,285,301,160,258,71,413,138,293,422,114,142,187,74,295,362,238,278,403,376,92,361,369,335,320,428,341,395,371,173,40,194,416,334,130,385,79,392,41,309,421,133,42,32,419,248,411,34,398,176,354,59,331,239,249,299,323,5,363,2,342,126,274,154,47,230,424,273,246,43,400,177,87,81,164,51,36,16,332,86,55,124,14,304,152,329,96,283,64,104,207,328,259,216,373,240,346,46,306,11,80,307,286,201,166,389,338,4,210,250,105,175,183,69,76,123,50,319,288,21,22,196,183,162,23,204,236,330,243,368,251,216,253,260,83,198,127,314,265,176,172,201,98,322,256,332,144,18,285,262,418,211,90,8,301,33,13,385,161,69,320,49,70,66,315,178,261,266,213,401,194,221,151,233,257,373,293,210,313,93,296,86,399,228,255,135,306,47,294,109,372,97,182,279,324,102,227,113,72,159,290,55,357,163,258,82,81,323,61,209,197,42,278,67,428,171,325,118,186,125,133,115,422,408,192,343,203,429,342,269,56,335,73,316,378,54,32,300,84,220,1,139,91,333,50,79,129,191,292,268,174,283,166,302,224,263,334,145,273,355,138,126,370,354,52,149,248,2,386,75,175,157,10,128,431,15,17,270,393,346,131,200,57,153,44,259,430,238,85,349,152,390,274,121,223,37,395,122,309,31,350,180,288,25,78,141,411,246,156,41,48,195,382,308,416,413,375,107,214,136,371,45,206,218,311,114,287,217,344,264,181,337,0,188,95,384,389,424,363,34,250,234,30,208,356,339,388,119,124,404,365,232,88,358,187,35,230,409,68,303,89,169,414,3,276,392,427,305,410,426,207,22,239,379,291,185,417,345,148,219,329,87,369,46,402,326,412,147,242,289,352,317,226,327,351,40,398,65,321,281,101,361,312,130,376,415,150,99,96,360,387,319,420,272,374,394,336,11,12,165,104,247,51,16,225,340,237,38,328,244,383,26,331,348,267,359,59,170,229,297,184,142,380,112,158,280,6,62,423,397,164,108,367,215,252,92,299,235,193,245,76,21,240,155,338,284,282,254,212,94,132,14,43,307,71,103,110,74,105,28,111,222,9,134,202,190,179,177,168,249,123,4,405,77,419,53,304,24,60,286,396,231,400,58,143,310,100,407,425,241,137,120,116,403,7,277,275,341,381,146,154,318,36,167,364,140,421,377,347,205,406,80,19,64,63,29,160,295,189,173,20,117,106,199,353,39,271,362,27,366,298,391,5,200,329,74,22,131,382,327,34,248,207,111,27,267,226,63,258,282,269,343,240,324,93,376,317,224,276,295,232,253,20,244,21,138,24,109,35,340,372,415,314,336,175,217,323,414,117,400,30,387,211,270,182,66,70,8,184,356,252,388,385,353,55,145,254,132,355,202,420,1,374,389,119,404,342,42,44,168,181,170,129,50,292,260,59,40,18,208,412,250,72,419,153,97,194,405,348,14,245,150,408,195,122,15,174,278,79,284,149,416,41,163,296,141,251,159,152,158,309,118,347,411,275,161,95,359,112,346,32,103,410,69,180,99,429,199,7,52,144,160,206,190,61,75,94,155,413,298,395,83,169,308,115,241,326,31,203,185,64,73,230,221,354,53,335,123,402,124,85,364,197,350,101,167,11,38,65,96,91,36,76,393,222,337,218,110,2,357,236,3,223,362,193,283,220,289,300,377,383,294,293,274,391,48,54,328,210,25,151,136,33,417,265,121,307,320,271,154,235,107,306,142,133,406,345,237,384,344,280,303,5,56,421,398,380,427,369,114,214,60,247,165,378,367,315,368,162,332,325,205,272,80,225,331,238,313,81,341,179,228,187,10,425,255,318,125,204,191,352,116,215,6,68,349,139,430,360,301,173,176,130,257,4,418,0,71,105,234,157,358,288,231,286,62,140,28,375,351,147,268,198,249,407,219,246,26,266,16,338,172,242,423,43,177,259,297,57,392,243,229,330,45,100,409,213,291,156,78,88,305,77,319,233,312,396,90,311,287,381,39,108,58,102,192,285,365,370,98,379,390,47,51,273,183,128,263,321,322,189,9,171,394,363,164,386,261,366,281,37,290,403,227,397,92,19,262,106,334,212,424,361,178,426,23,239,216,316,135,201,17,339,256,134,148,12,188,120,126,127,333,428,86,89,422,82,46,299,196,310,84,264,137,87,401,113,49,166,104,186,29,277,304,399,146,209,302,373,67,371,13,279,431,143,83,315,274,93,210,277,180,76,335,100,226,49,19,430,363,173,275,41,361,160,414,200,304,215,38,150,337,43,354,314,377,131,352,151,247,96,290,407,82,194,375,116,421,80,431,321,417,276,360,26,75,84,344,185,20,284,365,61,319,88,310,196,349,402,48,249,288,386,333,381,286,232,118,73,374,94,282,62,416,245,102,295,54,280,156,385,257,77,53,145,168,292,390,158,189,55,317,59,243,186,273,278,2,260,211,152,24,297,154,234,137,8,115,74,327,271,0,357,415,14,135,216,177,105,72,240,6,44,90,205,225,214,265,373,401,23,70,279,25,252,313,424,34,99,329,246,425,343,37,367,141,300,404,110,316,175,191,296,262,305,42,283,309,281,166,233,181,359,348,133,261,325,188,311,356,114,287,81,237,187,395,212,298,308,219,397,362,346,379,111,67,399,369,4,224,338,413,128,139,285,239,169,190,18,193,394,355,202,392,142,164,39,382,127,40,103,299,405,179,428,68,218,172,123,136,253,192,182,176,51,294,368,244,312,364,207,27,396,223,264,293,250,222,238,174,119,57,320,322,107,206,351,31,22,106,255,134,98,393,183,144,398,112,148,251,92,138,388,47,124,366,184,347,330,163,263,241,266,10,256,197,301,342,376,28,291,328,209,113,406,178,64,323,259,17,121,78,46,201,120,122,341,85,254,306,161,87,372,147,199,52,35,353,270,303,422,13,350,108,21,69,71,340,227,132,408,117,324,384,380,334,101,91,411,389,86,60,109,204,29,336,242,126,235,198,423,3,203,217,370,231,229,307,409,171,332,79,165,391,97,125,130,11,167,9,95,36,1,170,272,267,157,104,412,16,289,318,248,220,66,56,155,383,5,258,371,129,7,429,50,420,345,230,213,331,410,143,339,33,427,146,387,236,45,326,268,153,208,228,30,58,302,426,358,400,159,65,269,419,418,140,221,162,63,15,378,403,89,12,149,195,32,401,155,105,43,423,281,178,62,278,182,144,38,349,307,385,244,336,400,340,239,157,393,280,380,384,187,343,265,397,245,82,120,48,10,365,206,266,89,179,109,152,198,320,217,60,3,88,372,143,172,258,334,126,99,275,17,347,354,363,429,142,34,47,2,141,103,124,41,374,81,282,241,90,293,417,195,9,83,106,383,191,227,7,426,139,50,80,375,183,285,230,268,247,399,122,150,158,116,297,84,277,14,147,4,135,331,29,77,138,418,125,67,131,430,12,8,390,257,177,160,269,18,164,254,167,304,186,367,366,159,263,33,16,56,69,357,398,376,261,274,184,97,54,427,414,255,246,288,151,213,428,325,58,327,149,420,51,64,312,78,394,234,96,13,92,194,207,55,305,218,253,387,315,49,30,44,421,279,272,163,114,123,189,273,388,223,242,76,20,137,0,295,188,128,314,276,251,208,168,323,332,345,319,377,335,203,11,225,59,197,196,132,329,287,185,180,190,31,300,405,283,1,181,42,216,298,193,94,413,355,231,412,292,344,352,337,402,63,301,240,170,72,24,229,68,368,161,53,260,104,362,252,40,249,259,201,262,71,87,32,102,209,270,378,210,303,221,173,146,107,431,318,202,341,117,351,382,346,321,416,205,410,324,353,296,306,211,23,118,289,250,361,243,5,379,228,66,174,386,310,79,148,171,348,316,415,127,61,339,199,308,238,271,121,248,328,411,200,422,404,115,19,26,370,119,409,256,52,299,169,70,330,176,391,35,129,165,25,15,162,333,166,140,21,395,381,284,215,389,65,294,222,371,57,91,358,46,322,233,407,22,237,424,154,360,214,100,85,28,419,108,317,74,264,175,110,134,342,311,75,145,219,86,111,6,338,408,133,27,369,101,95,113,204,350,112,93,286,356,130,291,396,36,45,267,326,224,236,403,313,309,37,226,359,73,192,98,392,406,212,39,156,290,235,153,373,364,232,302,136,220,425,38,342,230,86,395,90,329,103,424,99,93,286,330,161,19,180,49,269,316,143,259,152,242,163,29,217,35,370,253,156,58,122,236,169,323,191,141,8,101,200,92,382,64,88,408,415,238,62,165,53,124,129,233,328,10,46,71,154,361,204,305,76,291,303,374,255,321,41,325,134,394,307,57,209,282,244,5,398,355,146,420,208,81,102,274,422,227,45,353,401,356,51,228,183,407,84,383,285,430,367,3,196,375,113,160,377,366,37,115,221,359,294,74,136,193,135,11,105,246,34,126,309,390,427,162,275,0,263,304,379,416,95,297,332,123,50,392,385,82,128,120,2,240,23,130,412,376,187,189,319,27,364,273,157,231,313,431,403,36,202,28,425,404,69,178,368,270,362,343,320,24,421,265,354,241,42,413,352,168,201,16,402,280,150,306,245,132,351,283,344,327,133,393,423,72,299,346,311,317,175,151,211,256,296,33,397,229,75,222,55,279,357,184,85,334,131,338,386,194,30,9,167,110,288,52,22,140,239,155,118,251,48,32,260,70,250,199,388,409,159,314,252,417,97,267,78,104,153,77,333,147,237,166,170,25,268,322,308,31,182,411,188,257,363,310,372,405,341,248,213,15,116,4,225,127,350,326,315,223,324,418,276,121,79,212,137,67,195,1,224,235,112,14,384,186,348,258,83,337,7,176,107,39,277,219,281,207,47,17,94,428,414,198,232,145,389,63,179,6,318,220,262,278,181,164,406,119,391,419,266,91,144,216,289,185,205,300,98,345,40,261,365,138,226,12,429,339,173,249,272,302,335,54,61,13,43,26,192,190,109,68,336,360,65,243,396,247,293,171,158,203,114,399,358,66,108,214,292,148,271,149,44,378,96,284,254,59,139,21,371,290,117,347,174,301,111,400,89,73,287,312,142,206,106,60,87,410,381,80,18,295,349,56,215,264,197,426,387,331,100,298,380,20,177,234,373,369,210,340,218,172,125,280,152,298,100,193,211,353,173,379,420,159,3,62,378,85,207,81,341,251,253,390,214,149,297,309,223,374,33,258,274,56,336,24,88,344,157,45,69,287,361,87,208,409,105,191,429,277,422,118,319,72,48,61,387,41,391,396,40,406,183,184,239,11,98,21,334,301,168,67,90,430,363,195,92,338,305,162,18,294,279,43,350,167,237,44,194,357,12,290,417,134,320,15,147,123,257,66,99,124,415,313,236,70,148,355,30,156,349,410,428,125,356,141,178,293,304,343,146,276,150,25,408,204,199,198,221,330,26,144,139,130,402,166,174,135,110,373,351,93,89,9,400,352,42,1,241,143,60,323,431,217,119,312,75,117,243,63,155,268,335,54,328,235,322,255,397,170,213,7,164,219,370,203,337,116,8,161,407,282,86,122,372,259,181,59,113,57,114,101,106,272,206,102,306,196,169,307,326,215,381,68,295,210,108,227,369,131,91,197,47,2,416,231,238,405,246,46,209,220,71,187,399,403,137,281,371,413,340,190,58,348,126,172,16,427,270,318,128,142,189,4,394,291,310,13,283,292,262,375,366,129,121,120,339,377,10,329,79,332,225,186,212,53,285,249,115,303,133,182,311,296,271,269,177,421,248,176,414,73,83,200,65,51,404,140,192,273,300,22,354,127,240,35,250,224,111,145,132,55,327,158,29,82,360,358,151,78,230,242,97,154,284,254,218,180,365,228,384,265,359,252,321,5,52,136,17,77,201,103,64,202,325,316,392,34,0,104,39,376,333,96,95,50,266,324,331,260,233,234,418,362,245,6,278,267,412,286,308,393,171,302,222,205,368,112,109,395,263,382,386,216,244,20,401,23,289,14,226,36,347,185,247,153,27,423,342,80,288,345,419,107,37,264,28,32,367,383,256,364,385,315,19,389,49,388,38,94,426,31,425,179,229,188,261,411,314,163,165,160,175,84,74,380,76,317,346,232,275,299,138,424,398,20,136,139,199,214,246,241,167,3,208,48,4,386,381,372,8,168,361,60,30,18,332,258,63,220,291,137,142,195,411,192,249,425,423,301,234,27,109,123,34,105,225,431,205,22,39,117,72,375,297,226,64,392,295,250,370,373,311,300,429,279,101,114,0,247,160,252,274,327,335,387,419,90,414,61,98,351,275,152,28,145,254,19,312,53,111,413,366,294,92,230,155,47,166,337,305,74,245,35,222,77,201,12,107,17,251,81,263,218,342,94,66,191,417,211,422,148,268,363,147,181,202,314,173,238,158,85,80,41,371,276,262,286,401,185,364,215,31,290,82,78,169,229,315,253,204,164,186,140,55,329,146,116,10,296,320,44,299,42,235,188,16,153,83,129,399,95,333,394,416,324,326,190,284,25,407,198,131,86,149,133,334,278,6,49,270,156,126,298,154,421,203,161,65,189,236,380,175,200,281,360,384,143,403,415,124,409,322,38,54,174,269,346,378,228,97,73,316,144,288,319,331,84,151,216,313,430,209,377,176,306,345,103,385,424,132,26,420,187,282,11,283,210,404,128,172,113,330,76,197,171,257,2,402,369,179,183,178,70,273,391,40,410,122,150,309,358,317,349,9,108,227,59,248,321,308,180,239,340,141,400,102,310,383,43,120,285,100,267,36,206,343,163,357,376,13,328,125,69,21,359,56,367,50,398,196,302,182,365,388,287,99,261,397,106,221,75,428,52,170,356,71,118,390,207,45,219,57,177,104,14,29,112,1,37,134,352,368,135,110,89,355,115,46,344,5,293,426,51,157,341,193,240,232,354,395,159,67,347,212,96,242,264,339,127,336,382,272,265,318,223,68,243,213,405,408,348,138,260,88,237,307,121,353,303,58,350,162,277,406,184,33,280,427,194,289,87,379,62,362,396,32,255,389,165,292,266,24,259,224,323,233,93,79,271,412,393,130,231,23,91,374,119,15,7,244,217,304,256,418,325,338,120,353,423,395,375,425,307,73,321,382,339,0,147,17,40,304,134,362,194,410,116,191,380,311,50,95,381,140,20,284,67,327,151,187,315,245,36,102,23,202,153,387,122,408,427,365,325,258,155,121,130,204,231,221,2,396,281,261,89,351,212,32,125,292,112,239,216,25,15,326,70,260,251,373,253,229,149,368,274,168,416,34,126,276,35,94,366,333,310,334,59,164,247,111,422,92,132,77,271,287,218,63,246,91,378,19,361,394,389,183,329,71,224,113,48,49,166,51,295,426,359,137,237,337,184,289,66,154,383,414,226,264,384,358,180,413,324,28,350,69,400,338,322,78,230,233,64,182,355,42,243,117,209,407,38,377,397,418,430,196,406,317,369,107,331,141,175,18,259,374,5,22,115,283,163,79,297,219,62,399,138,12,235,241,47,279,8,390,118,256,314,193,105,99,56,405,1,267,302,398,222,93,179,227,367,298,200,142,192,371,14,344,205,101,308,10,203,81,349,312,417,285,255,303,110,208,181,424,88,162,139,156,342,61,340,58,152,74,123,80,76,352,100,217,165,244,270,391,236,128,296,402,234,320,161,75,98,170,341,215,144,363,159,228,97,360,103,335,265,55,252,60,348,185,223,419,385,262,16,195,198,263,403,278,43,169,27,133,136,269,157,206,309,301,65,356,280,240,282,150,238,143,345,127,108,160,167,379,336,429,45,199,57,392,124,29,343,254,328,316,431,176,323,46,412,87,177,330,357,39,288,376,11,21,9,145,197,305,24,372,190,401,13,294,52,83,86,37,220,273,272,313,409,171,158,411,3,332,172,347,114,225,90,178,214,415,189,275,257,266,290,72,404,248,173,319,30,129,146,174,286,26,306,420,148,96,370,291,106,249,109,318,82,68,131,393,386,6,277,299,268,53,33,201,210,346,41,186,85,4,31,188,354,213,242,232,421,211,428,388,119,207,44,364,104,54,135,300,84,7,250,293,228,19,412,7,233,261,105,374,77,308,131,189,21,172,345,78,342,194,132,35,226,299,119,42,26,375,333,37,3,244,314,400,182,13,61,409,296,212,311,399,320,365,283,335,388,287,18,217,28,195,404,423,415,285,120,300,29,259,44,64,196,95,221,241,47,357,223,107,39,22,36,9,208,229,331,220,69,418,266,290,284,230,102,306,238,111,84,272,14,264,50,16,58,83,33,202,350,414,57,337,136,273,162,178,59,75,336,203,312,430,6,31,205,382,234,403,269,5,204,256,413,4,74,408,186,121,147,286,263,279,139,319,304,76,384,381,386,280,411,369,88,73,91,110,166,385,101,349,46,185,364,89,167,8,214,355,255,168,329,116,213,87,276,338,161,117,339,354,268,327,316,190,219,92,297,393,392,431,363,429,252,322,72,130,94,211,43,199,51,17,0,1,80,324,318,396,243,173,123,421,38,340,398,125,397,422,183,2,368,362,156,274,267,317,302,206,180,292,56,108,291,67,97,270,305,366,150,236,151,275,153,154,191,372,346,325,326,122,129,395,140,245,251,361,53,109,360,48,138,126,391,66,248,148,198,127,170,249,420,144,96,215,32,65,100,171,310,135,402,40,347,209,118,141,201,253,427,343,193,387,52,165,379,295,81,389,277,68,416,169,20,104,341,128,159,405,124,10,376,145,62,377,82,177,313,378,218,158,24,25,321,417,330,160,146,207,424,344,99,225,425,176,328,174,113,187,237,143,271,179,86,90,246,410,98,250,227,157,216,426,188,257,85,149,163,63,356,303,49,383,152,15,112,278,231,359,373,281,137,164,184,315,34,401,55,351,41,407,114,394,12,235,265,200,282,142,298,79,406,133,232,54,134,71,428,353,352,197,289,70,222,334,307,294,45,239,332,93,240,60,254,210,371,247,175,103,293,155,260,301,262,390,309,115,224,30,358,288,106,367,348,23,258,11,27,380,323,370,419,181,242,192,381,348,308,207,418,90,58,325,306,322,397,395,411,309,420,49,261,227,158,130,35,219,133,63,398,62,385,290,29,226,46,343,245,189,431,99,210,404,213,161,32,267,288,155,167,149,428,82,293,287,47,353,17,300,77,204,20,121,294,388,98,223,389,198,230,320,405,3,363,59,143,337,214,150,235,313,291,331,400,127,85,50,88,14,145,60,281,192,370,359,329,296,390,128,333,25,250,276,278,61,350,129,299,408,312,403,211,356,424,279,110,352,113,168,91,251,260,357,141,244,327,54,402,307,103,51,177,153,328,301,396,16,122,123,323,259,135,186,7,165,0,5,221,233,173,78,96,202,379,409,412,427,124,175,355,31,1,421,184,315,146,254,21,206,41,334,71,100,234,174,262,65,131,282,40,147,277,298,171,384,271,326,387,274,148,159,108,429,119,185,84,407,45,246,238,8,37,361,311,27,382,76,166,316,414,229,321,319,341,268,272,399,172,81,190,94,180,257,205,181,83,425,351,38,53,302,179,347,194,79,263,265,144,55,176,136,93,10,24,242,360,380,191,258,364,48,156,157,107,386,23,12,43,340,75,138,69,394,406,101,105,9,383,86,336,305,139,42,365,109,423,362,26,375,193,225,422,286,285,284,426,208,57,256,377,345,236,318,220,413,52,416,270,249,126,56,338,200,372,164,368,283,335,391,314,72,247,358,115,6,74,15,295,182,367,97,137,120,28,201,392,142,430,228,87,239,332,289,209,241,197,70,104,255,195,304,160,243,217,39,232,354,89,417,203,218,378,118,11,248,132,317,117,92,252,187,112,344,275,2,253,95,297,264,374,231,393,170,188,169,67,80,410,273,366,342,66,324,376,102,224,292,310,68,415,111,4,222,33,116,373,269,401,215,36,13,30,178,19,237,216,106,140,339,163,151,162,183,280,346,330,64,371,419,152,369,212,44,18,303,34,114,22,73,199,154,196,125,349,134,266,240,40,160,155,208,426,21,185,144,136,117,369,80,126,425,50,265,325,112,293,263,297,415,392,346,359,26,88,336,314,91,343,406,371,207,427,266,340,176,360,389,89,272,339,68,262,413,187,148,424,370,403,151,335,417,198,190,85,87,131,329,330,94,358,82,7,141,32,150,379,240,71,290,250,90,100,234,244,398,22,273,128,29,412,158,162,125,270,322,386,395,326,378,78,217,264,241,168,180,118,374,152,135,45,159,410,93,52,4,268,239,430,193,310,226,11,116,387,14,205,357,173,338,316,309,9,161,367,409,69,184,388,51,2,283,182,394,62,95,12,16,54,246,8,10,214,222,109,304,74,65,318,238,311,72,97,64,210,127,254,390,223,99,18,230,27,41,347,132,287,129,397,156,213,281,305,194,402,362,258,153,49,143,422,43,380,28,191,431,121,261,237,275,212,164,179,134,1,166,286,323,165,103,44,203,341,375,232,381,57,235,63,295,197,271,120,416,139,56,76,36,172,106,174,104,411,299,349,319,60,59,30,393,306,260,373,42,220,6,302,35,167,58,327,25,175,171,189,331,247,312,61,70,288,356,352,122,233,368,328,48,39,423,396,3,418,300,364,79,408,428,77,321,92,111,157,183,221,219,124,75,102,178,354,195,294,291,401,206,307,98,278,86,405,215,407,53,211,289,236,256,225,242,170,274,334,101,73,137,177,259,280,34,209,154,333,404,391,17,351,315,66,218,313,140,133,147,366,414,303,224,110,279,216,113,285,345,123,252,419,376,243,267,332,20,196,344,67,119,382,108,15,277,320,255,248,308,421,23,253,251,231,5,55,199,269,130,38,149,363,348,142,342,114,105,227,201,385,257,200,47,350,337,145,282,81,383,399,169,372,0,37,96,365,186,301,296,31,284,204,33,192,46,292,377,13,384,229,19,249,317,107,276,181,228,420,429,83,245,24,298,115,324,84,361,138,400,188,163,355,353,202,146,341,281,315,425,188,196,103,239,255,258,9,420,296,208,44,149,405,52,321,169,207,25,322,214,261,300,356,319,245,333,399,280,7,426,298,250,105,270,229,131,394,364,69,284,164,390,95,291,234,35,407,143,81,201,104,404,184,150,242,102,382,400,121,180,33,306,127,108,170,408,290,295,285,91,78,392,346,154,248,243,334,406,182,167,211,57,74,110,238,47,172,367,240,260,41,125,183,65,215,186,151,225,230,126,209,307,100,384,304,313,282,431,340,163,357,283,112,61,162,259,380,60,191,128,412,422,13,134,193,424,116,51,176,279,212,21,236,192,206,63,157,109,79,197,111,114,204,106,289,0,302,36,130,337,413,352,249,1,257,343,355,45,342,97,77,329,299,8,418,136,155,220,232,421,37,168,374,309,92,177,372,18,56,375,216,67,161,32,39,70,16,226,371,419,262,24,288,227,429,179,141,6,29,98,55,350,202,388,28,344,287,349,185,123,330,10,235,402,101,54,273,153,213,94,152,398,11,66,272,223,297,265,328,40,12,376,301,320,82,178,120,5,233,347,147,199,148,17,90,416,64,203,332,360,354,76,395,378,318,210,369,205,159,370,73,165,427,49,68,158,142,312,133,59,269,31,113,190,138,30,323,3,253,338,339,423,166,217,107,228,43,200,2,383,385,276,139,132,275,331,83,401,34,75,410,27,118,308,403,22,326,71,271,414,409,411,292,135,310,62,396,324,4,247,359,379,137,195,20,417,314,175,294,156,267,317,263,96,115,160,146,353,241,428,181,23,42,365,145,327,50,129,124,53,218,274,415,84,348,87,345,219,99,93,391,362,254,171,430,194,393,266,189,72,48,386,198,80,14,15,303,316,144,256,85,368,231,38,86,244,358,174,117,366,237,268,361,119,122,58,335,89,377,19,381,373,246,88,397,222,325,140,252,351,305,311,286,387,264,224,173,278,363,336,221,293,251,26,187,389,46,277,355,169,92,151,197,400,369,204,165,364,330,429,91,27,335,345,319,235,144,287,249,65,137,403,293,203,48,278,286,202,342,208,399,240,244,273,301,205,112,4,370,271,11,385,415,417,387,326,347,289,192,201,331,291,207,49,391,388,379,282,8,180,178,107,323,351,375,114,210,22,84,109,232,265,213,393,313,418,78,325,129,130,243,216,101,43,220,97,145,258,36,215,179,139,5,94,96,425,23,0,322,103,405,262,308,344,305,80,247,25,295,73,340,294,181,127,406,56,98,288,310,38,329,53,367,195,39,402,67,171,349,337,361,401,228,297,299,386,3,173,264,246,7,414,71,182,99,298,163,164,77,272,222,200,70,254,357,381,390,280,404,424,118,20,366,150,126,140,416,372,237,217,396,66,146,236,14,50,320,121,371,230,231,57,40,26,33,44,174,143,315,147,76,184,104,6,209,28,307,224,338,157,9,311,194,111,261,377,24,359,229,267,275,59,120,13,362,158,153,102,397,430,46,373,167,309,389,259,29,12,245,378,90,422,303,196,263,226,177,41,318,87,141,408,186,304,321,383,363,117,352,339,358,58,10,159,346,113,115,336,183,206,324,51,281,412,332,16,34,15,106,19,170,420,356,343,54,251,61,266,256,380,327,211,162,290,284,223,426,47,365,191,86,248,108,199,134,268,155,2,214,260,360,317,413,218,328,238,283,394,31,149,64,368,316,312,376,198,131,88,72,82,341,242,225,234,221,410,123,142,296,314,187,255,1,252,241,175,100,119,81,152,333,161,428,353,132,168,68,105,398,212,148,95,110,79,395,411,52,176,374,63,85,125,279,306,32,189,219,21,392,334,42,382,233,35,138,160,227,124,18,421,188,93,407,250,190,348,276,60,274,154,193,384,172,419,431,74,253,83,45,69,89,423,62,409,133,354,128,350,55,37,285,30,292,135,302,116,75,166,136,122,239,300,185,257,427,270,17,277,156,269,72,127,119,381,118,207,130,390,253,198,103,267,306,289,350,281,4,3,179,378,266,147,116,273,60,279,185,386,33,197,403,341,260,429,191,417,50,353,73,296,133,93,369,144,372,422,354,26,34,204,172,80,22,184,182,157,196,156,88,351,423,361,25,329,90,364,201,162,187,252,14,373,313,180,344,249,96,55,43,74,307,368,245,355,140,348,58,277,110,126,392,97,431,396,30,170,186,339,226,240,168,287,297,303,121,382,95,421,257,416,424,310,40,117,71,261,268,124,399,123,19,391,367,286,234,398,67,322,256,173,393,35,219,288,141,214,139,136,345,12,380,263,120,112,6,418,420,311,18,9,415,28,251,152,222,163,236,295,76,321,235,333,161,283,425,13,309,15,199,87,169,220,70,195,27,302,202,360,409,290,83,78,24,113,166,231,100,293,37,308,200,164,402,319,315,221,323,134,217,358,248,114,148,183,48,89,66,340,11,132,404,108,215,49,230,427,107,304,280,158,359,362,216,325,370,42,142,210,383,224,411,291,388,150,175,194,247,282,143,243,400,397,320,86,151,208,298,0,16,46,375,36,146,237,218,326,17,227,265,84,32,324,149,129,145,47,342,377,39,92,419,357,384,371,213,335,223,272,330,211,178,53,430,82,349,69,343,232,264,212,125,44,176,408,300,79,352,244,138,2,412,242,190,137,332,365,233,1,410,104,334,81,68,63,394,225,31,346,131,428,91,188,65,59,41,239,62,5,29,250,135,426,160,401,193,385,75,374,111,101,407,122,337,278,413,406,376,209,54,312,56,336,38,285,387,255,356,366,299,99,106,395,284,51,8,305,109,7,246,98,21,328,317,20,292,153,159,94,338,405,238,389,102,270,276,174,105,271,181,52,414,203,115,275,228,64,301,165,61,77,171,269,155,262,205,347,241,189,128,316,318,327,177,254,10,85,379,167,363,259,331,57,23,258,229,45,206,154,314,294,192,274,116,316,46,363,203,157,28,289,37,309,99,303,75,430,388,19,108,78,297,375,18,215,362,330,103,56,249,213,270,421,385,278,125,348,156,29,190,286,319,223,139,160,82,31,250,279,185,163,3,96,335,360,343,261,161,271,128,253,232,143,404,39,17,386,51,178,264,67,107,140,141,312,45,60,364,151,150,423,167,236,7,391,219,98,83,235,44,395,416,148,187,104,162,175,225,254,197,294,325,95,323,248,269,402,81,132,181,92,64,361,365,210,321,218,204,164,40,66,413,380,290,110,58,91,52,65,247,406,55,355,273,144,186,401,339,217,252,285,245,13,49,266,429,61,70,22,68,89,208,398,267,76,63,293,53,221,258,74,165,320,214,414,15,127,176,298,174,50,188,431,38,409,25,135,195,246,16,142,183,344,112,180,275,281,384,35,62,331,172,209,69,200,86,205,259,392,42,274,313,231,71,224,100,424,10,296,9,417,114,326,410,241,126,87,228,418,124,226,43,324,425,196,212,177,315,6,169,265,182,117,288,84,262,106,272,72,79,310,134,350,199,367,347,59,376,314,352,337,422,349,301,166,351,154,111,358,299,138,292,201,26,368,333,170,366,234,396,105,102,329,222,307,123,389,426,328,12,227,147,374,158,77,356,304,302,268,80,145,8,369,30,179,136,5,21,393,129,211,240,47,32,184,280,149,251,168,405,115,322,400,311,300,90,387,306,340,14,36,130,229,4,239,383,0,428,338,131,255,237,257,308,420,419,332,370,153,152,202,359,155,220,244,394,23,118,109,353,34,159,11,427,256,133,189,1,233,377,357,399,206,121,54,415,88,354,57,120,33,342,295,346,411,408,97,113,397,191,407,282,207,373,48,73,334,381,27,379,291,277,382,24,41,378,305,403,345,412,283,122,276,390,20,284,2,93,372,216,318,336,94,243,146,371,317,101,194,119,238,260,193,173,85,171,242,263,287,230,192,137,198,327,341,153,116,155,80,25,361,367,399,91,121,59,181,255,256,421,87,358,281,261,233,123,306,168,190,319,410,352,238,14,254,148,174,22,250,288,7,103,31,293,3,125,200,42,416,390,267,187,380,55,88,93,46,95,259,417,224,34,298,1,104,322,210,213,39,406,105,160,161,331,198,299,118,360,66,157,295,379,134,220,120,364,23,294,115,67,142,260,239,414,96,97,53,323,280,230,391,129,11,312,109,283,205,69,111,363,117,32,240,75,212,131,381,37,171,303,332,180,231,35,365,285,242,221,232,228,208,72,246,150,92,307,271,184,287,385,427,393,419,6,404,44,291,164,196,431,40,397,0,372,237,43,278,167,165,132,392,82,158,48,76,333,316,151,315,328,251,83,362,10,345,371,408,182,30,356,26,424,227,265,41,101,423,57,396,108,149,27,107,62,330,327,51,223,249,258,325,344,86,382,321,341,77,106,152,245,336,84,144,412,415,219,211,296,176,100,185,300,70,335,207,186,172,127,65,370,377,47,206,398,248,272,140,74,177,12,195,357,2,141,119,71,270,99,262,19,384,78,36,169,395,346,216,422,170,16,252,122,133,347,98,350,58,94,305,269,166,17,189,373,418,18,128,268,201,304,81,191,68,50,214,38,24,409,329,54,20,334,376,61,130,124,234,429,29,163,139,73,413,420,311,354,135,146,374,284,113,279,236,45,162,175,339,400,112,243,264,110,368,222,297,247,426,102,194,351,425,326,56,263,389,235,314,292,218,411,215,355,145,8,301,337,156,49,15,209,320,274,277,147,197,9,5,173,257,366,203,375,343,241,199,178,402,407,183,403,28,275,388,324,85,308,136,179,126,401,313,226,387,138,428,342,309,4,286,202,318,369,383,192,348,193,430,353,273,225,143,52,378,289,276,229,386,244,405,340,338,394,359,349,204,317,63,266,302,253,282,89,79,33,159,188,290,21,90,154,64,114,60,13,310,137,217,26,406,336,230,5,179,79,85,280,143,312,224,152,345,346,260,316,382,313,107,360,16,57,134,58,9,139,182,429,272,62,364,115,401,381,287,340,34,292,4,219,242,3,291,423,314,37,331,59,273,50,347,187,221,18,61,207,353,47,426,392,411,121,140,22,244,105,285,184,252,226,368,324,329,367,310,361,317,36,112,378,17,355,351,176,297,14,232,342,198,276,149,274,338,222,173,11,289,124,69,175,30,259,183,201,239,288,261,7,282,96,48,212,270,248,82,102,363,390,194,330,93,358,110,60,145,303,43,157,225,119,223,33,356,371,296,237,298,186,216,304,218,334,28,354,278,180,332,46,352,141,127,52,430,290,108,103,386,265,24,41,189,2,185,243,129,169,51,181,29,166,377,213,74,168,293,192,197,202,427,15,164,63,227,308,111,148,325,418,88,205,393,68,262,211,246,160,263,286,138,341,322,268,117,104,326,419,410,294,123,71,267,171,264,162,191,333,101,126,357,147,206,75,195,32,400,84,309,165,131,307,241,348,98,240,389,118,199,412,302,235,135,365,339,73,45,258,384,417,362,188,405,156,414,174,266,23,269,327,396,204,370,86,403,421,350,55,25,120,114,77,277,163,281,196,349,283,210,13,344,158,318,385,27,215,428,413,369,128,154,209,200,359,383,375,415,374,343,97,284,214,95,146,78,376,233,388,53,92,431,306,408,321,125,228,380,20,251,10,89,132,150,253,366,19,144,193,424,398,257,379,301,66,391,12,81,295,416,35,44,100,234,249,387,1,373,238,399,372,256,172,67,40,407,39,420,80,116,190,217,153,72,404,142,113,65,76,300,323,254,250,99,231,275,109,177,31,122,90,87,49,21,70,208,56,106,159,337,54,425,161,178,167,395,220,133,155,394,305,271,279,6,94,64,299,83,422,315,402,247,255,236,0,409,130,91,245,151,311,137,397,170,335,42,320,38,8,319,229,328,136,203,127,417,5,3,240,60,422,234,419,272,275,131,148,122,364,113,255,63,193,178,271,13,225,296,331,341,2,186,286,85,236,273,99,238,9,135,94,96,89,305,378,204,80,276,14,287,84,119,412,261,161,244,18,277,103,98,270,17,337,83,334,382,139,108,349,280,75,0,112,374,268,61,166,12,274,246,58,16,46,125,65,376,190,86,231,300,418,21,114,216,194,410,55,243,215,298,90,388,250,257,152,233,319,201,73,361,355,51,101,136,52,262,171,11,292,279,50,386,177,196,335,36,411,390,129,115,401,7,25,143,67,342,19,365,26,79,346,176,180,138,154,162,351,62,415,147,302,362,430,387,398,22,380,375,402,403,373,345,295,354,396,220,252,347,256,359,70,288,370,76,15,200,333,189,408,168,421,199,170,307,123,144,308,27,332,169,44,428,258,327,249,266,338,49,391,367,88,74,405,226,322,306,158,221,368,82,219,314,222,350,56,343,251,399,235,217,157,309,30,81,203,213,29,184,352,160,413,105,237,54,404,259,133,371,429,239,290,232,385,242,164,324,377,297,263,165,393,69,202,344,195,104,383,313,372,24,93,304,37,230,227,121,72,223,260,379,198,329,312,132,228,395,301,282,173,142,187,8,381,407,167,1,289,120,124,71,321,47,32,339,191,358,326,134,151,206,264,283,137,179,389,328,299,229,35,4,128,360,183,155,303,414,248,212,406,409,118,163,39,59,150,285,247,209,425,348,145,42,427,357,156,197,182,34,181,267,394,340,174,106,188,431,254,392,426,192,207,126,315,111,175,6,146,397,91,224,100,153,214,210,43,400,253,141,38,218,107,208,109,384,241,293,423,66,57,149,10,172,92,353,323,41,291,130,325,310,185,278,68,420,40,356,116,33,28,320,284,366,369,363,205,265,95,424,117,245,110,97,159,20,64,23,78,269,336,416,211,45,48,317,87,311,294,318,77,31,281,140,330,53,102,316,271,0,151,166,104,26,5,346,242,412,388,329,333,401,350,391,331,382,268,101,25,253,287,38,257,431,264,266,128,369,383,15,176,254,62,292,217,428,324,221,107,57,237,192,159,317,303,286,384,54,404,295,88,274,328,106,234,112,22,196,158,34,94,361,162,309,390,6,407,124,195,261,194,426,111,419,223,24,338,231,403,339,244,394,218,19,417,123,125,39,279,207,314,205,272,117,65,163,130,44,267,122,193,427,397,188,148,232,241,118,227,396,157,2,197,110,410,387,14,178,393,356,190,402,210,249,367,220,343,362,27,81,134,405,98,103,215,289,156,315,142,245,90,175,71,305,96,236,318,126,51,67,285,304,89,208,422,1,17,310,70,372,211,348,152,330,113,10,169,364,185,72,246,31,143,400,425,199,131,283,411,219,181,191,260,180,240,213,423,116,228,342,138,13,137,21,332,212,415,85,269,313,326,358,366,170,145,371,243,119,357,60,140,398,252,214,127,28,360,154,414,179,8,64,298,146,277,53,307,150,389,204,418,386,374,133,20,284,229,3,132,323,171,177,56,302,409,258,120,355,281,293,345,275,380,216,187,365,136,203,42,377,167,430,340,306,406,77,47,174,36,160,230,300,206,378,102,424,416,255,235,46,66,114,55,334,321,359,186,319,74,375,352,68,413,173,155,18,297,48,379,50,183,278,105,262,225,164,63,108,395,347,99,238,373,222,399,149,93,79,32,141,290,86,37,335,83,121,23,270,308,35,78,29,43,429,351,161,168,296,129,12,11,248,336,251,202,73,291,200,172,7,344,320,82,288,45,250,327,144,4,76,58,322,84,420,294,282,276,349,301,421,354,385,61,263,30,259,80,92,299,69,198,233,370,33,147,224,135,226,182,184,209,109,41,115,95,59,311,273,16,312,280,100,353,316,40,75,153,189,363,9,91,87,165,341,247,239,256,368,201,139,325,97,52,337,392,265,376,381,408,49,13,107,364,299,411,250,179,406,412,62,27,184,318,233,32,302,345,114,100,77,261,154,316,206,415,168,73,374,26,176,361,225,323,31,308,66,283,213,419,51,36,293,417,104,181,221,294,15,351,223,93,278,310,253,123,98,298,214,311,34,290,49,201,84,58,112,186,399,187,69,208,326,229,182,309,129,424,120,189,141,259,396,275,180,59,394,165,115,305,81,377,18,111,313,430,375,414,194,347,191,337,6,199,288,188,19,64,416,341,202,91,265,387,145,171,401,295,183,279,153,192,116,218,8,101,315,78,385,110,204,363,342,2,405,388,76,338,39,418,289,287,4,343,45,230,354,125,197,75,389,237,157,382,22,297,360,273,258,420,370,40,113,128,277,5,262,398,211,291,21,28,243,322,38,170,57,226,248,24,80,356,138,251,359,296,350,357,177,92,185,269,16,220,242,429,333,241,175,317,48,280,332,314,161,312,85,272,231,282,41,392,216,106,252,232,163,207,402,284,9,319,431,33,349,108,254,224,264,320,50,144,353,166,366,193,109,158,325,301,61,215,307,46,236,37,67,403,7,368,268,379,393,358,409,257,239,148,152,400,266,137,390,160,331,53,339,130,285,83,391,327,90,422,196,276,134,300,271,209,304,30,63,151,139,47,352,124,334,149,17,384,25,167,60,423,82,190,203,395,103,373,346,29,421,142,122,306,362,404,119,3,274,367,10,240,425,217,43,260,255,55,238,11,156,105,426,118,413,228,87,247,369,35,1,117,86,169,249,132,72,95,348,140,174,378,89,44,380,12,88,178,126,143,0,246,336,121,281,71,173,245,155,321,94,70,407,198,74,329,65,131,96,150,23,227,219,222,365,52,330,136,372,235,127,410,195,147,381,263,164,162,14,267,324,234,328,344,340,397,244,335,286,133,256,68,408,20,42,159,200,210,172,99,56,386,303,376,383,212,97,79,205,146,427,270,135,54,355,428,292,102,371,301,89,131,103,3,19,200,350,318,297,363,278,102,81,321,94,105,392,395,364,274,355,361,14,161,291,33,175,189,263,236,281,185,218,214,152,420,244,264,71,293,172,323,251,370,409,279,117,77,104,425,373,27,111,331,126,178,222,412,380,79,115,387,258,292,136,418,415,299,246,95,407,384,75,18,45,227,396,100,307,88,67,114,237,59,310,286,372,7,312,422,91,179,0,6,128,9,419,366,145,119,390,268,130,247,250,164,205,348,255,138,382,405,203,375,113,423,183,8,228,186,64,276,304,262,191,41,168,73,137,320,325,63,15,393,25,378,144,141,120,345,208,335,365,230,30,65,428,50,234,254,54,285,275,232,61,303,155,417,108,253,2,106,386,142,163,31,300,146,169,69,135,170,343,426,383,202,11,5,351,23,156,187,216,1,70,217,197,404,32,83,261,411,241,140,399,123,265,204,162,147,243,17,125,221,190,53,309,158,314,226,165,192,334,290,313,339,127,154,295,270,282,349,42,51,249,416,213,39,374,283,118,406,266,206,133,271,78,16,93,347,76,341,326,327,229,353,239,403,273,24,294,52,132,84,209,26,336,328,58,322,287,260,153,68,225,122,277,385,231,207,139,421,112,55,101,35,358,233,248,66,196,377,424,280,210,414,238,43,430,427,188,174,356,369,96,235,352,166,219,376,337,177,381,21,44,121,357,110,256,211,240,129,167,413,342,223,296,157,302,97,391,80,124,182,201,48,34,28,401,354,317,362,408,193,87,316,429,306,62,402,143,346,245,109,171,311,57,289,194,324,394,85,49,431,22,82,259,269,107,305,195,29,184,344,98,134,359,330,116,46,150,181,160,368,308,333,371,389,388,90,99,272,60,400,298,173,367,92,36,360,257,20,159,176,198,379,212,398,329,37,180,56,40,284,74,148,86,410,220,242,338,215,151,288,397,267,13,199,340,319,47,10,12,224,149,252,38,72,315,332,4,164,47,327,286,374,270,149,240,185,319,244,382,73,74,105,27,158,40,214,70,176,14,77,102,373,192,107,315,29,58,76,196,1,38,257,358,414,225,250,67,422,169,2,363,395,288,261,309,128,24,36,170,231,271,80,260,39,283,209,303,94,324,259,120,281,248,245,203,287,95,150,139,383,193,406,431,21,321,381,322,228,126,255,131,346,342,274,308,217,65,55,289,241,337,379,243,387,380,263,109,405,37,99,235,388,378,279,375,335,188,53,341,206,198,402,357,93,302,91,8,307,15,106,290,410,152,41,171,75,132,340,338,325,83,49,265,123,409,333,20,239,416,118,229,227,425,365,72,278,249,168,199,329,66,84,71,64,417,129,125,368,253,112,226,26,355,427,82,6,32,377,352,51,393,298,391,19,141,46,3,273,22,167,430,103,114,419,366,264,195,323,429,201,356,400,389,145,194,247,31,262,242,165,237,142,159,174,317,336,296,301,306,140,154,43,69,359,12,97,124,88,137,119,312,314,299,404,172,246,343,348,415,208,54,62,11,370,367,215,294,251,347,7,135,426,23,85,204,344,5,33,155,127,146,121,182,183,362,130,162,310,258,238,78,328,45,42,234,413,411,421,280,111,116,96,186,81,98,213,205,408,197,396,222,233,221,113,59,156,403,86,101,339,9,25,110,254,397,223,304,350,418,28,189,57,52,420,187,92,200,60,216,297,316,334,293,266,385,399,282,326,218,232,90,10,360,390,191,364,345,305,143,68,211,104,160,173,349,184,428,108,376,372,412,256,18,285,269,219,394,117,291,163,353,330,332,313,13,276,331,398,252,320,17,369,61,4,178,30,386,354,268,284,16,190,79,361,144,161,224,34,48,44,371,133,407,148,134,87,122,272,177,166,212,115,179,35,384,157,0,210,275,277,147,311,180,318,267,50,401,351,423,292,56,392,153,136,175,202,138,220,181,151,236,230,100,424,295,207,89,300,63,417,262,27,351,347,55,396,394,194,397,101,82,354,254,121,256,165,128,315,379,172,279,422,154,265,83,382,223,78,431,246,423,20,392,192,316,23,421,390,125,144,69,38,409,335,370,102,381,288,406,129,380,174,79,393,157,376,349,170,313,100,261,275,364,322,1,300,368,50,310,235,426,374,44,203,419,385,167,350,115,384,213,243,15,53,281,116,163,17,360,18,319,112,98,39,61,273,207,226,190,345,249,365,89,428,228,32,314,415,402,12,141,95,388,414,263,169,317,188,156,301,178,355,424,133,324,232,250,36,330,104,247,367,391,198,43,152,334,65,122,306,85,236,305,312,357,204,285,2,277,51,123,323,90,118,75,260,187,4,86,145,67,199,30,343,268,326,366,136,91,294,353,311,96,19,270,150,24,411,329,361,5,302,33,196,62,8,395,155,76,0,206,215,160,398,177,42,132,99,298,266,362,28,425,210,158,176,369,216,211,296,427,286,186,40,430,356,195,126,410,166,255,88,217,185,191,59,338,412,131,25,171,124,408,375,49,153,372,258,142,401,245,274,143,371,202,238,387,138,201,11,218,183,271,13,81,212,182,267,113,87,244,336,208,320,400,63,181,110,230,10,404,93,328,407,48,252,325,58,290,240,293,331,278,222,253,57,130,68,308,21,107,321,418,383,304,299,420,359,97,403,257,117,103,287,120,342,127,52,84,221,119,259,234,134,284,31,26,239,184,146,64,264,34,200,137,358,339,280,289,41,16,70,135,60,386,242,7,373,333,162,416,9,348,219,237,307,282,405,429,363,341,72,283,54,106,37,214,303,114,164,295,205,66,139,3,111,344,224,225,14,231,71,74,269,47,337,292,173,92,332,248,159,276,189,346,109,241,22,161,180,179,105,46,399,291,233,340,80,220,6,352,77,168,151,175,149,413,29,35,147,140,108,94,378,229,318,327,389,193,148,251,209,377,309,297,272,227,197,45,73,56,28,8,118,80,313,412,69,178,398,169,238,243,67,85,107,21,83,216,146,341,229,245,191,375,36,109,4,151,39,376,152,133,312,57,209,239,267,50,163,119,34,275,413,47,210,354,213,27,106,131,88,102,154,347,19,273,127,30,422,302,299,369,65,266,48,287,185,35,231,159,227,335,63,329,317,249,390,218,247,140,339,251,346,403,223,186,353,364,136,290,198,278,164,29,429,220,255,374,9,254,174,184,289,108,23,285,410,194,340,301,225,25,344,423,101,325,91,111,156,224,52,176,167,401,395,258,362,417,228,308,421,76,303,22,282,381,221,234,33,324,365,309,235,394,16,162,59,207,420,15,391,244,372,402,256,187,240,359,64,200,257,177,202,58,252,155,170,20,128,319,409,86,311,292,400,37,201,112,387,379,51,122,360,17,277,291,192,211,242,117,180,424,110,306,262,367,383,323,188,145,426,125,98,345,411,322,232,149,284,94,342,103,404,87,141,72,419,406,150,261,189,95,363,392,361,272,129,357,293,181,382,388,431,74,134,205,41,279,330,427,320,270,296,286,326,332,351,288,307,336,104,113,53,334,260,138,250,328,171,217,214,100,12,337,153,44,66,143,237,182,378,84,300,32,148,132,208,71,137,396,316,13,0,358,348,135,160,45,168,393,62,60,368,121,281,418,124,197,56,386,126,389,295,31,397,327,3,265,274,18,38,280,384,321,68,371,130,246,425,314,5,338,175,43,350,10,89,318,81,120,253,70,298,54,161,93,355,46,294,2,331,1,78,352,276,310,6,407,408,356,366,248,241,99,147,203,79,55,115,97,215,172,96,173,105,226,165,196,414,343,77,42,399,236,373,304,259,11,92,385,305,264,230,14,40,283,26,206,157,297,190,61,416,179,144,116,49,233,24,428,183,415,90,222,199,333,219,82,75,114,271,370,405,268,166,158,193,73,212,142,139,349,269,263,7,123,204,315,195,430,377,380,232,105,142,358,313,264,211,43,161,147,94,305,82,288,261,258,122,155,4,152,223,426,374,159,314,195,189,190,303,216,256,49,201,173,149,336,175,14,363,286,157,347,34,156,48,359,188,174,202,421,327,405,332,75,6,272,115,234,197,404,166,1,98,79,386,136,372,30,419,310,259,11,362,204,83,420,84,95,68,183,398,361,8,36,93,269,276,318,391,86,333,297,103,100,208,321,177,390,32,167,15,55,186,85,284,360,163,104,238,285,217,322,263,203,364,72,325,47,279,379,51,240,17,412,154,257,402,428,348,274,194,59,80,400,312,370,337,158,135,315,290,371,375,182,275,92,304,366,301,170,343,0,417,252,124,342,292,56,7,407,185,268,119,29,287,107,246,20,127,137,184,250,431,19,302,27,191,270,357,355,212,423,109,429,225,196,143,326,219,63,160,294,199,408,112,281,308,178,153,354,214,89,87,116,45,335,65,67,198,148,226,328,9,394,346,2,331,414,44,162,416,353,164,41,172,231,387,415,236,227,111,267,207,383,410,123,126,24,101,345,399,129,52,299,179,130,134,409,54,66,262,271,99,235,10,260,350,255,108,330,382,213,224,88,323,21,145,18,171,430,349,146,74,341,230,37,338,40,365,291,169,329,117,140,110,64,377,376,218,396,193,324,118,427,229,128,13,69,125,344,385,221,384,57,367,393,133,33,91,38,141,340,206,380,237,388,200,25,78,283,418,120,28,289,233,42,298,401,70,300,165,106,254,278,339,97,422,114,22,309,215,180,192,5,316,144,12,77,71,241,277,210,60,35,245,205,317,295,16,369,282,425,228,397,266,296,406,413,249,368,293,139,319,102,168,239,280,411,26,381,209,222,151,273,132,187,424,50,62,150,311,352,46,76,242,248,53,176,73,395,90,23,392,265,121,403,61,220,113,81,31,243,138,58,247,351,334,96,251,39,373,244,389,253,320,356,378,307,181,306,3,131,206,200,129,101,116,177,391,404,25,244,58,73,247,257,343,232,298,160,92,193,340,416,412,411,192,121,430,385,255,236,4,155,235,162,401,110,424,146,95,406,115,353,191,276,187,320,184,135,345,367,299,156,323,56,346,88,370,153,240,65,201,169,372,102,80,305,172,415,398,79,314,90,403,283,38,374,292,303,117,104,357,23,344,166,291,386,3,418,40,182,333,296,28,293,347,279,197,31,310,119,331,312,109,289,422,134,13,221,100,266,61,72,342,18,349,378,154,91,364,185,339,42,24,7,420,351,336,75,253,355,379,48,382,29,122,62,55,81,171,6,274,74,304,22,1,248,395,149,230,19,306,158,356,143,335,120,144,39,216,167,338,425,249,220,44,86,227,145,300,375,423,394,96,294,186,410,254,302,215,30,286,105,179,108,267,325,328,165,301,94,315,114,2,326,57,152,376,198,60,341,261,399,358,125,161,337,392,68,419,407,280,69,290,426,112,142,369,139,196,224,178,348,238,324,271,387,205,181,41,241,252,295,70,405,284,371,250,211,260,217,128,264,334,209,287,229,373,311,327,195,71,157,233,237,82,138,45,202,414,402,113,219,51,168,228,204,330,188,97,8,26,67,93,428,309,393,127,269,214,150,164,189,246,33,256,147,259,273,76,234,163,194,208,83,35,285,352,318,106,34,319,354,242,66,9,350,131,63,268,316,10,54,251,297,46,317,223,245,148,258,265,84,361,15,427,47,36,281,275,313,362,322,20,363,136,270,207,49,282,173,130,384,377,99,50,89,222,21,111,77,307,388,199,308,262,397,183,159,37,413,78,151,368,417,243,27,17,126,226,429,53,124,5,239,141,12,133,365,85,360,103,87,263,11,32,225,321,43,380,14,0,203,64,329,272,213,408,190,231,52,59,175,140,218,381,132,137,400,176,390,210,107,332,123,118,359,98,212,421,366,409,396,170,277,16,389,278,431,383,180,288,174,133,219,101,429,339,381,270,186,409,184,44,406,329,254,282,59,180,151,347,55,76,153,400,399,125,13,371,240,320,351,295,82,117,75,242,78,188,115,245,114,281,369,355,313,148,380,368,263,423,196,143,99,395,231,404,47,61,167,350,431,338,427,342,54,248,64,169,136,16,171,139,393,172,217,179,390,346,51,391,258,156,331,23,267,420,41,90,285,8,111,187,336,308,226,206,359,370,109,63,126,305,89,225,266,207,135,316,87,20,110,33,201,212,273,32,417,7,333,220,228,30,113,174,37,215,40,274,163,299,421,405,362,116,361,236,192,385,80,422,318,204,323,343,102,124,261,79,84,278,311,176,159,340,324,65,168,128,195,306,297,145,118,230,91,425,185,377,11,373,289,28,69,344,365,131,253,165,250,221,190,25,413,14,214,280,72,407,294,3,146,160,257,349,348,363,298,173,97,73,265,424,315,321,197,92,205,35,284,21,166,325,137,198,353,271,246,238,388,147,70,19,193,162,129,200,105,358,202,345,398,314,387,403,150,260,383,419,309,234,127,77,392,328,178,386,83,410,15,4,108,356,262,31,269,235,62,6,67,68,384,389,130,415,36,276,74,379,396,106,366,141,53,211,367,98,307,335,301,292,104,152,287,182,157,100,138,39,302,85,45,17,357,26,312,50,223,5,374,94,42,317,191,310,268,208,418,0,330,189,229,218,93,210,1,2,144,372,175,252,199,24,264,300,296,412,364,18,272,56,304,326,233,397,123,49,88,319,428,154,46,382,222,279,9,81,303,158,216,375,332,237,22,161,66,203,256,34,132,322,290,213,277,155,293,183,209,259,29,181,71,401,411,134,227,103,107,376,416,170,247,38,60,96,164,291,119,394,275,341,352,121,286,43,10,142,378,243,414,239,122,95,255,27,334,86,177,430,251,244,140,232,249,327,288,224,283,149,354,57,48,58,360,112,194,241,402,426,52,12,120,337,408,253,305,209,350,372,310,22,180,341,29,366,114,142,343,228,369,379,185,181,397,169,256,421,255,268,233,346,279,300,426,229,248,118,247,356,292,111,306,3,275,86,195,353,221,262,323,258,192,265,10,58,168,87,225,194,303,365,8,40,429,143,23,418,235,75,30,131,60,172,121,269,227,193,246,50,21,146,182,423,327,154,15,237,281,123,157,204,59,32,191,301,285,307,320,406,329,273,129,242,293,115,4,408,138,37,5,67,288,63,170,239,236,271,203,140,231,62,297,9,12,364,93,47,163,317,27,54,25,151,336,409,164,161,149,358,342,103,28,112,234,289,252,148,165,362,299,430,259,392,34,267,388,156,134,375,404,65,280,333,272,173,304,349,153,384,390,147,177,42,244,308,81,344,124,407,370,363,101,122,80,178,57,377,219,100,73,428,19,261,98,110,338,376,88,325,167,70,144,402,302,200,179,415,361,309,214,102,312,212,160,386,419,251,35,72,53,85,399,16,175,2,319,332,125,13,205,224,36,84,127,367,357,315,249,385,401,374,44,18,383,286,220,64,76,41,425,270,422,97,274,264,78,126,91,414,250,26,222,14,241,266,411,31,260,135,133,166,334,69,278,232,373,211,89,245,396,162,277,348,202,6,150,378,387,199,431,71,296,152,424,145,24,197,216,198,413,104,52,49,56,128,226,328,206,94,186,38,83,106,116,119,313,188,240,45,405,427,68,0,381,109,99,371,391,136,61,210,189,314,412,283,257,217,263,43,298,393,368,382,95,187,108,113,337,139,282,20,196,389,90,55,316,351,243,117,290,403,335,420,176,223,120,345,159,354,330,360,398,218,311,66,380,137,331,318,7,287,410,208,276,183,295,416,96,230,158,291,17,107,11,322,174,155,77,394,46,340,141,51,201,184,355,321,48,33,130,171,339,215,254,190,238,79,294,39,105,92,284,132,82,74,1,324,207,395,417,213,347,352,326,359,400,344,382,343,256,100,242,243,144,350,106,191,56,209,339,158,294,373,379,19,328,71,62,389,173,127,314,263,424,88,195,274,190,107,361,39,428,207,427,213,353,171,417,189,381,58,411,296,48,407,309,13,108,281,74,386,194,383,6,201,259,365,399,307,431,142,160,217,140,371,94,255,406,153,172,31,138,272,208,215,214,388,415,112,325,17,329,47,220,254,305,75,266,179,374,132,235,61,131,397,113,222,247,363,246,164,319,20,345,317,394,290,253,402,120,425,332,287,117,346,46,375,9,152,76,260,262,192,151,34,250,119,270,362,137,391,96,169,352,306,400,85,11,226,370,232,156,347,136,157,3,92,87,385,228,351,67,393,304,10,122,52,224,404,125,187,238,64,51,124,252,273,84,26,230,57,211,418,200,366,267,282,63,104,299,128,43,341,423,149,234,193,244,323,318,280,426,24,414,166,203,405,90,286,333,25,257,59,174,251,313,143,101,369,38,302,277,15,16,196,413,310,30,54,308,197,412,401,301,81,372,70,202,237,395,239,36,89,139,278,331,357,240,300,342,248,105,116,109,289,130,429,115,93,216,183,334,233,205,245,0,188,380,32,284,129,40,33,368,315,218,154,212,276,322,316,268,376,219,161,360,147,97,77,231,241,330,45,65,165,114,182,185,336,264,295,103,121,384,79,390,23,66,5,14,285,42,80,387,221,356,8,324,145,4,392,7,44,178,364,354,271,95,27,275,340,53,249,68,419,60,258,155,303,55,199,403,206,311,377,229,28,181,291,133,86,326,135,134,320,335,91,148,288,35,358,141,82,359,321,49,21,422,225,102,198,204,283,12,180,98,279,210,408,293,170,126,163,184,176,186,338,159,146,398,78,29,421,298,409,261,236,162,223,269,111,378,167,110,2,349,430,37,355,292,396,22,367,83,227,410,312,1,72,41,420,348,73,69,99,150,18,327,123,337,118,177,168,175,265,50,416,297,399,32,149,253,329,322,199,405,12,342,379,421,382,79,226,218,304,28,294,296,109,67,198,303,292,356,408,118,377,355,398,157,319,210,268,48,345,246,378,297,352,98,125,361,263,279,285,422,190,401,184,142,69,275,316,178,0,114,335,201,429,39,120,237,400,290,139,265,212,61,419,82,314,354,366,71,147,410,383,185,215,343,256,277,145,244,404,323,165,402,374,245,103,257,333,93,77,381,390,33,291,415,29,393,97,162,186,299,221,301,320,313,373,180,311,417,241,60,243,159,36,305,298,318,131,179,278,248,416,151,166,234,384,111,183,193,388,431,338,152,220,164,371,370,326,30,74,250,150,18,43,167,208,15,202,10,44,122,276,175,200,176,337,403,411,138,247,153,227,83,73,425,168,412,349,293,397,306,325,20,426,389,391,16,317,413,309,154,92,387,270,5,219,310,163,260,424,22,87,107,214,334,392,155,126,369,148,229,407,182,105,59,76,409,281,90,327,37,84,8,269,336,181,295,115,420,216,406,228,62,284,108,9,158,42,96,188,88,117,258,25,177,112,17,46,375,50,52,217,123,365,11,35,273,86,134,255,119,367,288,271,23,127,101,266,261,213,280,124,156,207,137,428,70,75,358,81,282,222,340,63,211,196,344,312,321,141,58,140,330,14,232,66,238,174,274,362,1,100,170,307,289,315,7,372,203,27,233,363,328,324,34,91,172,99,351,287,41,331,161,240,2,350,423,130,347,385,64,129,187,102,31,242,47,116,192,396,113,267,286,106,121,205,195,136,169,128,85,110,194,341,308,380,376,339,252,283,65,368,224,206,427,13,414,272,133,26,78,264,418,204,135,89,21,45,302,143,51,104,254,3,357,197,95,171,40,251,38,386,56,300,160,394,225,249,230,223,49,235,54,353,359,24,395,146,209,55,360,53,57,239,189,72,80,262,430,144,346,364,236,173,19,132,191,68,94,231,259,4,348,332,6,70,139,211,63,377,356,30,242,414,292,110,130,121,17,162,95,397,80,244,45,160,153,114,216,427,349,42,174,133,246,81,263,383,240,241,35,148,44,156,207,305,21,288,300,41,96,149,79,64,157,46,354,374,26,126,302,199,353,419,43,223,9,345,384,393,67,66,351,392,74,281,307,68,376,429,323,378,219,381,290,23,58,48,252,106,303,77,182,55,125,32,350,315,136,86,316,332,167,298,423,208,279,421,112,277,365,33,194,226,247,364,253,396,318,105,231,213,271,280,171,78,82,186,2,249,127,185,177,266,123,116,259,203,313,6,212,342,76,3,268,233,14,254,291,115,141,269,15,348,407,94,430,57,128,54,69,403,85,7,425,289,255,109,159,202,5,264,8,135,312,188,166,19,272,61,196,375,325,319,189,111,320,274,340,257,38,398,16,360,40,84,154,118,140,326,134,72,335,224,214,357,172,401,103,132,92,386,333,190,113,104,93,206,317,75,27,205,347,337,163,346,372,181,22,12,145,310,99,404,232,31,100,294,142,235,394,36,306,10,299,422,371,83,217,102,295,52,282,395,56,355,426,251,152,184,47,380,164,389,238,366,239,286,59,331,193,98,13,362,410,405,4,222,343,192,276,120,151,431,204,261,352,283,417,408,147,363,270,341,418,428,73,230,369,402,234,275,176,328,90,406,221,169,175,324,411,62,124,131,178,138,385,53,400,338,284,146,119,322,150,379,391,229,273,236,88,34,387,24,399,170,412,336,248,50,137,0,382,18,339,256,218,155,51,20,107,415,228,168,293,321,200,220,209,117,367,197,311,237,91,210,285,413,161,262,265,97,187,314,327,158,390,89,144,143,225,195,373,301,334,359,60,201,173,165,358,215,344,71,368,227,49,29,304,424,250,65,183,1,297,28,309,370,180,258,39,37,87,243,179,122,101,420,416,388,296,330,278,260,191,287,245,329,198,108,308,361,129,267,25,409,11,383,265,395,18,378,149,241,419,173,167,298,222,374,403,339,142,377,273,129,168,216,36,311,267,145,415,224,319,176,302,114,130,52,77,400,64,27,55,63,84,182,420,261,356,238,294,109,223,413,347,153,208,162,394,111,58,81,254,426,332,368,1,43,25,221,411,392,139,134,397,30,14,296,96,198,346,157,179,154,35,41,125,260,217,106,388,206,270,197,5,183,401,124,102,266,60,26,290,300,325,21,171,95,370,321,88,181,147,218,418,252,59,353,308,299,28,303,205,150,146,288,404,386,314,387,363,144,65,293,390,372,248,318,226,278,113,305,40,316,399,329,324,117,44,349,85,51,32,137,385,287,76,380,297,126,281,429,17,337,416,193,166,322,245,345,333,50,213,140,214,94,172,83,104,49,364,184,118,285,247,186,240,108,143,357,284,239,152,276,13,228,189,255,264,257,215,70,112,330,425,313,22,422,237,39,393,68,6,274,354,340,185,192,256,37,431,177,258,45,212,74,136,402,210,151,201,57,42,291,427,163,164,414,29,259,230,100,98,326,105,34,358,12,355,409,398,16,249,0,229,410,250,7,365,141,174,31,272,306,72,127,87,178,131,253,11,362,10,180,69,103,282,159,203,195,133,407,61,211,331,175,97,38,310,412,235,86,116,132,2,161,148,62,78,90,207,233,128,93,92,406,120,375,48,9,110,286,277,334,246,275,381,204,344,366,369,234,199,82,119,423,405,268,219,328,373,295,8,283,80,367,122,160,115,279,338,196,304,170,359,343,382,200,301,371,351,271,73,317,4,243,46,236,292,335,53,384,396,424,79,312,336,307,242,20,47,187,417,320,227,75,341,376,280,107,202,360,220,89,391,169,99,194,54,315,289,135,3,348,209,188,361,156,15,123,309,389,24,342,56,138,352,263,251,244,165,350,23,232,33,269,155,225,71,379,327,231,408,323,430,191,158,421,190,66,91,121,19,428,262,101,67,311,117,0,419,92,104,94,81,142,368,126,59,68,78,69,200,181,236,316,148,321,309,253,386,263,189,351,270,165,19,300,379,338,285,389,190,420,11,337,261,83,276,268,283,293,58,306,210,214,84,196,336,332,139,341,192,40,105,198,226,118,231,30,392,426,217,185,3,107,223,363,194,164,314,225,404,376,411,220,326,22,133,256,75,130,26,303,122,100,400,290,27,230,244,315,380,264,202,12,213,320,186,9,335,8,328,42,239,371,344,382,6,124,299,365,281,302,307,374,153,103,169,373,219,250,401,112,243,1,37,381,21,294,13,175,167,120,249,354,362,82,125,325,144,180,53,358,134,429,52,207,85,66,168,38,4,284,247,269,301,349,71,91,199,18,188,259,34,430,414,116,232,265,93,251,295,398,318,80,151,108,235,110,323,418,399,423,271,177,208,348,375,413,387,174,62,394,407,204,238,241,171,76,176,370,49,54,317,29,60,131,333,233,183,350,391,246,275,16,329,237,113,205,56,172,406,61,339,195,369,234,206,360,242,252,388,415,70,366,257,224,367,215,427,14,212,150,163,390,308,128,10,313,115,182,221,262,201,132,74,35,403,45,377,291,357,158,412,305,5,72,109,127,136,417,393,410,222,143,409,254,55,160,421,101,322,278,416,95,7,137,245,385,395,280,296,17,211,98,119,319,114,297,141,397,145,99,431,64,191,44,352,255,340,248,203,2,173,359,273,63,372,147,97,330,361,355,39,396,140,279,50,166,343,346,146,33,161,24,258,41,106,334,65,135,102,342,25,43,28,304,31,90,405,266,77,287,89,402,32,312,298,157,138,378,240,187,79,408,229,178,154,159,310,282,428,67,274,267,123,156,218,197,422,228,272,193,88,15,86,51,216,48,289,96,227,324,209,155,292,162,73,345,46,286,179,87,424,111,57,121,383,184,36,288,152,277,353,170,331,347,327,260,20,149,47,364,384,425,356,129,23,314,245,101,312,143,275,369,294,298,280,359,401,28,306,421,51,356,320,58,315,390,191,406,325,118,130,252,219,422,380,202,145,114,168,382,417,136,113,110,182,269,347,257,284,75,301,387,226,148,22,102,181,263,290,225,400,39,135,57,42,200,394,175,3,82,152,25,367,397,374,260,61,196,120,221,333,2,253,282,289,37,55,413,210,169,149,358,100,396,50,426,261,92,48,331,56,411,238,35,391,91,346,43,303,111,78,201,362,349,156,184,419,106,285,97,337,14,170,384,339,93,125,12,342,329,420,308,297,409,402,165,206,317,63,46,247,199,70,190,274,30,142,44,24,255,86,262,256,138,386,18,127,217,355,237,83,124,283,103,242,364,79,185,330,423,324,348,335,334,353,344,372,74,180,222,267,393,123,328,5,305,71,176,381,377,233,332,112,341,146,295,399,129,62,338,287,177,250,41,162,49,144,258,72,323,266,52,164,119,19,151,351,59,407,304,416,203,231,291,137,122,229,264,236,47,371,415,161,150,132,232,8,318,96,239,53,366,343,73,9,1,121,340,223,172,403,302,99,313,81,307,85,431,109,87,327,246,153,32,230,108,249,188,11,140,224,276,90,89,6,408,410,345,174,418,326,405,26,243,179,365,76,155,220,94,38,116,198,105,195,385,392,272,107,361,357,68,160,281,212,218,27,205,251,159,10,147,158,77,322,336,187,204,60,395,373,310,16,40,296,214,309,268,157,271,197,368,292,235,126,240,213,429,424,67,211,154,321,34,7,319,350,388,13,33,352,370,248,270,139,414,183,354,279,430,173,228,171,80,141,227,254,299,277,300,21,216,194,178,20,115,65,128,131,0,288,398,36,69,412,29,4,389,259,54,23,31,166,360,316,88,193,208,378,293,428,133,286,207,234,84,273,134,427,215,379,117,15,383,376,265,404,17,363,311,104,209,95,241,425,66,192,375,64,186,163,45,189,98,244,167,278,165,54,162,428,203,393,168,270,155,172,82,134,8,410,23,225,120,274,209,381,318,391,70,31,41,398,255,242,325,85,188,5,161,182,119,21,72,12,83,254,356,39,163,303,315,294,317,269,92,334,400,282,87,353,297,262,181,370,405,90,337,117,394,43,42,324,62,124,342,108,35,137,401,38,288,81,190,143,78,145,105,420,363,424,1,354,408,50,206,89,409,349,217,247,275,320,416,185,278,112,116,281,249,186,114,414,111,29,383,431,327,345,40,33,373,121,392,330,344,371,106,51,197,189,3,68,223,210,199,131,147,319,208,313,109,272,335,322,429,44,258,156,264,284,211,57,27,384,299,351,176,253,300,233,404,47,292,343,175,229,268,348,13,184,198,157,375,305,61,237,96,0,141,399,67,166,321,379,142,200,153,422,26,259,298,368,326,251,273,22,37,14,132,19,380,306,309,293,338,365,387,144,231,240,425,257,267,276,140,123,30,252,295,148,261,287,173,427,103,301,243,60,212,369,216,374,227,11,426,226,88,407,99,331,177,311,46,213,224,74,362,418,289,16,196,214,151,146,403,347,100,361,395,316,84,52,187,94,15,2,413,66,174,336,378,86,415,389,285,346,304,350,219,377,312,244,149,118,64,125,372,265,192,77,238,421,302,239,194,159,283,271,290,58,230,135,202,423,150,366,376,411,390,382,277,195,218,329,129,235,102,417,341,260,296,332,104,158,205,6,245,357,139,193,178,352,232,360,93,386,167,364,32,154,91,138,133,25,430,419,250,152,367,220,385,207,397,127,164,241,406,412,48,279,76,201,222,113,9,28,10,340,75,280,36,246,236,204,221,183,355,79,4,170,266,169,18,359,63,310,98,234,396,171,215,180,136,256,101,307,291,248,69,308,95,339,71,402,314,115,160,388,286,323,179,56,97,45,7,328,65,24,126,20,34,358,228,107,130,80,333,59,110,55,263,17,128,122,191,49,73,53,12,321,399,387,167,226,298,51,274,193,191,398,34,10,249,73,335,420,131,26,46,211,81,280,24,168,379,258,294,267,309,75,358,178,0,181,39,165,139,288,242,146,25,37,292,215,299,295,330,229,91,147,83,331,234,155,304,415,28,316,279,318,141,350,339,353,48,92,128,224,306,384,396,220,135,216,275,97,176,324,290,385,42,325,371,263,56,31,14,119,174,160,212,175,137,71,374,29,284,50,386,149,397,159,152,106,44,344,349,61,163,69,408,36,235,58,183,99,77,203,362,251,401,268,238,296,354,78,237,52,104,261,377,134,302,87,352,47,205,40,202,429,356,18,123,283,357,424,310,22,132,346,381,332,425,151,109,272,62,255,161,90,341,222,407,49,380,136,153,269,311,38,287,102,418,55,239,431,270,393,59,348,403,200,390,250,221,301,85,351,206,35,122,19,232,107,113,95,80,101,252,142,394,6,154,405,233,282,266,74,57,209,375,289,156,5,17,376,337,172,410,100,1,326,15,11,126,88,179,366,16,182,338,60,208,264,256,417,392,411,368,177,162,333,185,248,300,171,423,7,412,186,388,360,370,108,414,413,70,148,319,201,84,112,33,361,114,395,347,389,247,143,262,278,158,245,194,184,43,382,121,327,305,129,213,67,364,227,173,53,336,190,9,218,210,207,3,198,169,20,98,273,170,243,144,400,421,2,164,65,293,406,21,110,199,297,105,111,30,315,343,303,291,230,312,372,76,23,89,72,115,422,231,197,225,365,355,8,82,342,419,219,430,180,428,260,314,117,32,253,426,285,41,116,187,404,254,345,68,96,86,313,54,359,103,27,241,328,236,240,373,259,79,192,286,223,323,217,45,118,145,363,140,265,133,127,195,244,189,166,257,66,120,204,271,329,63,228,150,340,214,196,94,378,124,427,4,157,391,317,13,277,307,93,320,322,334,246,308,367,416,125,138,276,409,64,383,281,188,402,369,130,400,397,224,371,396,57,146,93,102,170,257,333,188,272,420,362,415,303,45,168,39,11,249,15,214,319,364,31,126,330,340,99,78,273,358,60,128,12,349,221,235,230,100,408,160,382,69,62,119,127,76,414,182,283,4,190,318,385,331,164,259,258,152,130,306,336,91,236,320,36,53,409,281,421,289,356,387,323,287,252,195,151,17,244,294,114,9,101,295,308,403,201,92,392,148,275,359,325,297,338,298,179,18,154,200,307,2,120,134,184,163,64,391,284,335,388,269,131,52,355,103,58,145,3,277,155,202,286,121,280,54,144,43,165,95,383,250,77,157,104,300,374,350,246,49,228,8,216,422,291,301,47,404,425,370,143,169,81,110,150,375,191,222,412,212,125,353,429,220,88,227,133,231,94,7,315,211,361,207,266,430,240,348,176,90,238,341,71,426,105,241,311,339,418,268,26,305,256,417,262,25,51,328,279,153,326,309,27,324,351,210,376,405,390,299,255,61,265,186,161,386,276,313,288,124,13,254,96,23,185,132,312,138,329,177,16,406,0,75,159,66,74,264,63,431,260,44,70,394,292,129,206,296,378,395,205,14,172,389,112,65,377,107,373,141,193,208,345,196,401,213,334,136,171,365,19,282,369,22,226,407,419,32,285,162,6,109,199,314,167,28,98,84,137,379,56,33,274,41,198,59,108,413,225,253,80,416,347,229,352,37,278,424,428,180,189,113,89,192,135,302,34,46,267,42,310,67,398,321,270,316,304,55,203,381,215,24,204,242,106,290,29,178,234,293,118,327,342,35,123,50,261,366,384,399,140,360,218,38,346,82,197,139,363,368,117,173,337,217,48,166,354,10,223,116,344,233,263,243,367,219,79,251,183,427,68,402,248,322,40,115,111,181,393,343,187,423,156,410,147,194,357,232,245,83,85,411,5,122,332,237,174,30,380,142,1,372,21,97,20,87,86,247,72,239,73,209,317,149,271,175,158,44,315,220,398,287,166,425,387,155,92,20,119,391,262,71,94,127,336,126,408,291,223,179,288,405,111,9,93,257,400,394,58,48,5,103,4,198,297,240,106,247,174,79,406,18,388,137,427,368,206,207,285,212,333,42,267,138,377,83,345,239,245,114,188,309,227,24,232,162,124,201,8,363,385,355,371,226,41,332,384,173,282,159,316,213,157,55,238,16,293,274,169,130,215,161,128,84,182,185,178,184,131,175,270,95,366,36,380,401,187,254,115,199,373,347,374,172,318,323,211,23,428,60,109,231,278,75,417,268,277,170,186,50,407,29,261,209,180,273,375,35,234,228,279,116,353,10,350,356,258,324,22,13,134,386,248,321,263,244,87,31,359,250,73,7,194,300,311,224,11,40,190,142,39,290,43,276,45,370,410,296,113,259,395,390,286,399,204,392,243,256,74,2,397,319,193,322,91,284,145,47,230,141,252,160,264,37,49,308,320,64,424,89,329,361,236,163,15,233,389,383,112,14,153,210,85,414,208,280,21,132,339,146,97,294,418,88,325,420,129,423,346,341,176,340,118,298,235,66,412,123,30,108,271,76,265,272,301,96,426,67,122,314,72,203,3,411,105,62,335,330,148,360,431,12,32,283,362,54,219,150,225,164,326,140,101,338,19,393,52,33,382,249,168,281,202,331,343,86,191,205,117,303,416,242,313,342,98,430,305,352,334,369,317,364,241,28,17,372,59,269,348,69,65,378,396,379,266,404,151,349,51,354,304,61,110,403,63,167,139,189,34,237,415,344,307,27,200,181,197,365,192,152,251,26,214,102,135,337,295,275,70,217,82,409,402,100,327,255,196,77,90,229,218,419,351,253,292,357,358,289,183,121,57,302,144,328,312,306,216,381,154,53,143,165,107,299,80,120,195,422,221,136,25,376,68,46,222,81,133,158,310,147,38,413,171,149,99,177,367,6,246,260,1,421,0,56,104,429,125,78,156,416,102,168,124,283,128,192,134,7,39,388,86,426,279,400,193,119,190,68,345,364,149,359,360,330,329,195,286,220,82,118,188,12,230,144,105,88,419,270,136,37,26,380,179,76,387,54,21,361,57,90,413,404,218,393,421,349,135,176,198,130,4,307,1,399,78,173,235,180,324,49,255,332,316,43,398,133,138,48,205,208,111,402,202,331,237,408,430,314,51,70,175,341,120,177,256,126,222,141,354,390,277,62,224,377,99,425,367,385,174,33,422,382,20,365,35,97,429,148,201,234,239,93,154,317,384,236,352,200,182,158,309,132,45,406,431,203,194,161,13,157,197,251,65,273,19,61,187,129,123,40,152,295,394,290,351,160,215,117,75,414,350,291,28,159,69,31,411,258,23,247,423,106,284,311,344,156,122,318,94,171,225,348,207,333,302,32,391,77,29,306,249,328,206,189,346,368,243,280,340,386,112,221,268,108,238,320,9,127,10,292,107,312,233,71,259,282,231,165,229,223,347,183,153,248,8,337,145,285,303,244,24,22,428,87,98,186,113,363,379,96,209,196,403,389,262,305,139,297,327,321,140,163,50,100,15,34,407,245,287,381,142,308,356,64,14,250,319,424,417,405,353,181,313,397,278,339,150,146,178,162,371,267,298,326,299,263,336,294,204,131,56,30,240,73,116,274,410,271,373,246,36,11,374,375,55,427,16,81,44,296,84,304,242,103,47,216,211,310,95,378,257,67,63,199,27,254,104,74,125,272,41,172,53,213,42,58,115,191,217,383,396,418,89,315,342,338,92,0,155,101,2,25,335,275,366,322,46,184,66,79,395,420,241,169,164,143,269,362,289,147,252,137,166,260,301,266,376,185,372,38,265,170,121,253,3,357,261,226,369,343,288,5,227,276,293,415,72,334,355,17,18,91,212,325,392,151,232,110,214,167,401,85,210,60,300,412,52,114,80,59,409,83,219,109,228,6,358,370,323,281,264,27,193,379,239,372,60,248,123,87,150,171,85,159,201,154,177,413,195,224,243,260,276,283,389,71,304,133,262,257,12,84,264,401,367,63,49,142,191,203,355,305,210,90,20,199,107,250,25,68,282,161,106,204,147,272,187,396,315,59,242,214,124,417,165,393,279,122,144,173,216,381,66,213,145,404,51,163,50,280,62,148,338,137,170,253,146,128,288,415,308,184,354,245,394,312,176,336,369,298,335,267,380,11,287,270,79,21,384,108,86,274,397,255,353,183,120,234,219,94,225,229,181,118,92,289,6,273,327,23,377,343,16,217,158,306,294,178,371,111,220,420,54,284,424,311,348,34,121,188,249,347,376,8,131,320,192,115,155,329,28,303,89,93,334,48,113,431,164,309,179,33,356,41,373,2,352,328,370,341,318,95,383,168,135,319,365,221,45,141,160,232,96,17,208,410,200,390,290,98,307,218,134,185,278,35,29,339,138,43,130,19,101,209,374,331,321,421,233,156,399,0,132,345,1,77,322,324,157,337,7,407,80,140,69,78,189,182,419,13,349,428,61,22,402,222,286,244,102,238,215,363,196,398,212,42,366,236,14,403,269,259,100,361,357,378,408,275,175,256,395,149,136,76,297,235,116,368,344,277,429,316,197,263,143,166,112,74,412,38,52,57,293,72,252,422,169,207,198,73,103,295,119,291,109,202,364,167,9,152,313,386,362,65,46,326,416,388,300,427,317,114,409,351,392,314,228,261,382,271,387,340,10,385,36,258,162,31,268,37,430,97,299,391,5,425,129,227,406,82,56,67,58,91,247,40,64,360,186,172,32,296,254,285,265,342,266,3,281,174,414,405,125,325,47,251,151,88,4,426,194,70,180,75,18,139,301,246,126,423,333,418,231,211,53,332,241,226,205,55,110,310,99,30,240,26,400,230,358,292,15,302,411,323,105,24,39,359,346,190,127,44,104,375,206,237,83,117,81,330,350,153,223,153,161,78,23,325,52,157,169,269,379,253,360,40,308,392,63,373,8,326,347,27,22,100,90,314,207,121,60,104,64,144,384,192,165,98,238,181,132,170,316,409,228,54,69,311,206,35,425,330,359,75,5,302,167,317,281,36,289,223,264,38,215,114,136,137,51,349,239,395,108,6,247,83,234,230,58,89,251,397,414,77,105,304,118,365,319,233,143,119,154,47,86,34,151,160,67,307,416,357,424,338,71,204,17,263,14,348,203,284,190,277,222,187,300,418,341,290,106,172,385,131,216,391,122,364,420,352,423,288,343,361,225,176,324,21,282,327,3,18,178,276,7,44,244,138,205,221,381,124,85,329,28,39,164,146,250,149,422,309,0,219,328,193,415,19,62,378,171,73,24,403,331,241,130,128,46,179,31,202,212,388,406,405,11,15,94,127,278,156,217,113,260,400,240,150,272,9,404,267,315,199,295,59,344,33,332,367,20,147,299,242,198,186,32,4,431,266,305,259,175,97,74,13,158,45,30,371,210,426,268,57,421,133,429,226,256,376,125,49,2,116,162,195,96,254,396,366,79,407,120,183,271,390,84,218,189,408,372,227,334,428,29,80,70,354,166,401,174,155,306,417,336,56,99,117,65,358,10,168,76,245,246,377,12,286,197,126,387,148,312,220,353,232,91,135,294,72,109,339,88,430,313,191,394,411,235,103,355,249,292,322,389,1,237,110,296,129,42,142,374,214,145,346,419,321,261,345,298,340,248,55,134,280,243,209,350,43,208,211,231,16,48,102,177,369,303,275,82,270,224,356,262,402,427,184,107,380,265,283,163,323,293,386,41,200,188,182,342,180,258,252,291,320,123,287,375,301,25,112,337,92,229,351,101,213,111,26,368,37,68,399,274,255,383,382,201,61,66,139,196,140,412,273,363,87,93,410,115,159,297,362,413,50,141,279,257,333,173,370,398,185,335,81,393,194,53,318,152,95,310,236,285,243,207,36,132,166,403,205,144,46,283,341,344,152,379,202,187,139,421,255,427,60,45,191,104,102,326,281,419,415,263,28,23,158,297,284,69,259,34,56,134,185,19,307,17,361,301,388,99,295,251,111,314,49,84,293,147,345,393,378,356,374,142,417,209,206,227,193,218,57,21,358,224,230,408,258,146,248,50,360,175,151,392,338,103,80,382,273,321,154,294,322,381,232,1,149,222,330,317,123,280,219,75,93,65,406,85,394,282,288,184,129,261,285,162,316,369,366,200,319,39,250,130,182,252,308,63,363,342,398,264,323,239,390,336,228,33,11,354,181,127,296,376,112,353,87,380,414,306,210,416,424,244,237,116,92,44,256,271,153,339,16,98,2,157,179,400,125,373,384,29,109,203,37,194,311,192,412,82,242,54,235,274,221,83,156,327,257,170,426,399,328,143,318,429,64,12,13,343,217,220,352,225,289,178,101,241,265,67,43,62,128,253,407,260,79,61,119,136,223,368,14,387,122,106,404,20,114,15,26,383,422,340,96,204,279,107,333,70,58,347,287,245,423,137,277,145,262,118,270,411,299,176,371,348,110,24,201,174,349,276,332,8,367,247,138,309,413,238,298,375,171,405,140,188,90,89,53,40,310,324,126,41,94,229,30,334,163,410,365,337,150,391,148,364,27,212,292,272,236,172,300,183,249,312,155,372,325,303,329,266,55,197,91,233,180,291,409,305,121,71,215,3,216,269,5,428,0,177,160,159,124,335,108,7,77,135,386,74,359,234,431,401,275,59,35,246,430,240,278,66,97,6,95,211,395,189,51,22,76,302,397,186,254,117,115,78,18,402,48,52,173,168,355,418,377,113,420,42,208,362,141,86,346,226,350,73,198,190,304,214,72,213,133,425,105,165,290,88,47,32,38,286,31,25,385,357,370,100,169,320,4,267,315,396,231,167,389,81,68,10,351,131,268,199,313,164,161,120,9,196,331,195,251,281,289,85,402,193,22,101,330,311,271,341,8,139,339,45,208,240,378,351,183,232,215,207,191,344,406,2,313,425,81,18,326,213,82,95,295,428,40,285,381,31,160,34,318,11,79,111,182,253,319,379,100,204,121,274,192,310,114,42,144,241,73,55,395,340,44,370,374,368,225,60,390,228,205,260,162,218,146,158,135,92,180,156,266,356,267,306,23,219,168,62,123,102,349,110,32,188,268,132,282,257,175,230,56,407,90,405,401,194,377,342,307,68,12,126,174,185,149,297,201,398,80,43,329,152,148,5,338,278,343,332,214,150,244,418,411,48,421,7,298,242,10,19,317,420,305,331,64,136,309,346,106,222,70,54,164,277,28,75,172,422,392,0,303,116,169,276,210,38,118,243,159,197,24,170,141,115,265,17,269,247,129,367,324,238,178,396,131,212,147,234,239,414,376,65,272,393,359,316,280,4,49,358,97,127,355,397,173,348,211,107,41,58,262,20,138,410,256,254,98,99,354,382,74,198,237,415,235,125,199,399,259,389,408,424,288,93,67,391,423,140,380,154,352,337,171,66,275,181,364,35,190,145,87,431,220,117,279,248,226,124,15,52,236,299,128,292,255,103,14,361,312,200,375,249,286,176,83,363,264,133,3,287,333,304,252,261,353,209,120,336,403,320,409,165,112,384,33,203,413,36,294,302,166,195,231,412,130,263,372,315,216,224,142,369,325,71,347,296,157,122,327,322,161,89,143,151,350,246,134,37,202,273,96,78,308,50,104,291,163,360,69,53,29,283,250,284,357,270,153,416,386,373,365,16,314,76,27,419,258,63,184,362,25,300,427,323,88,366,46,227,26,426,113,345,9,388,109,223,394,21,30,119,6,334,371,196,404,290,105,51,206,179,189,39,328,430,91,47,229,417,108,137,387,77,1,94,385,59,301,321,72,221,167,57,233,429,84,177,293,217,245,400,86,187,13,155,383,335,61,186,148,370,422,51,63,225,237,180,387,240,380,376,301,221,99,381,319,29,282,199,255,408,382,110,336,157,134,3,420,279,214,372,129,107,91,285,287,200,291,368,131,310,68,265,389,254,409,128,277,385,137,271,261,313,346,377,250,168,383,6,147,208,47,223,151,201,183,211,259,80,349,267,417,21,427,85,342,167,0,163,338,166,228,12,32,355,413,108,374,82,66,132,324,423,312,89,123,314,69,326,93,411,352,73,418,16,337,191,311,412,24,139,362,260,150,249,216,174,152,94,83,97,55,218,360,86,172,431,42,113,323,241,34,173,77,406,8,176,266,293,252,295,119,65,329,303,378,31,111,292,217,141,43,54,209,76,60,269,321,286,425,364,354,67,235,272,373,202,159,302,122,239,186,348,75,7,136,256,46,177,215,184,53,74,52,328,276,403,171,138,64,41,190,27,273,344,320,262,19,330,117,156,179,371,258,375,45,379,25,358,100,426,58,415,61,253,185,144,247,339,127,103,264,227,192,170,350,398,130,299,212,35,178,154,81,424,57,105,153,160,79,121,416,95,410,283,62,194,308,421,280,278,181,395,188,363,2,390,332,70,18,10,233,11,298,143,15,242,155,248,182,340,193,198,245,263,307,231,419,4,315,219,44,26,333,396,238,72,359,334,232,391,402,353,257,268,304,84,196,20,204,210,115,229,37,289,197,39,327,98,162,367,400,429,230,335,300,118,9,33,428,361,220,356,393,38,161,365,135,331,207,96,394,206,430,281,322,401,116,1,145,205,142,120,318,48,187,158,22,78,109,388,404,399,56,17,112,343,397,125,104,357,246,296,347,297,165,23,244,49,189,317,305,325,114,40,87,169,270,392,50,71,164,369,90,222,405,126,309,243,13,294,30,14,274,195,102,345,124,236,59,101,306,366,36,234,384,284,290,88,386,28,106,213,224,226,5,316,92,203,288,407,414,175,341,140,251,133,146,351,275,149,30,182,378,302,11,237,344,393,367,97,126,343,127,224,228,263,267,146,196,104,405,417,132,270,231,149,395,169,233,147,265,348,131,35,128,117,411,55,129,78,205,256,9,190,10,152,87,334,339,3,326,247,281,248,342,244,177,184,172,385,389,48,316,260,317,148,13,373,157,386,387,22,59,285,76,63,324,89,346,323,431,62,38,75,116,167,325,309,108,312,257,135,83,412,100,204,368,414,418,6,271,227,56,289,39,170,230,215,193,40,390,160,422,264,223,32,396,297,19,27,380,314,14,358,398,24,179,192,255,181,103,345,71,413,162,225,197,372,106,298,427,284,259,84,42,340,295,391,68,36,165,90,74,203,229,96,54,266,114,262,331,364,34,291,61,279,140,125,18,341,318,161,120,238,383,64,188,258,50,136,294,350,98,7,401,330,250,354,94,80,403,275,321,392,308,115,382,163,313,45,171,202,15,113,419,145,95,335,249,69,416,269,158,49,307,363,254,253,186,407,226,303,429,67,93,349,240,173,1,310,221,261,66,195,118,31,216,280,272,423,110,201,305,290,86,242,245,306,124,239,355,44,214,235,141,404,53,301,384,178,82,130,428,58,327,397,426,217,70,336,236,151,176,278,332,112,23,37,0,180,194,111,218,207,25,241,183,410,79,2,232,415,153,122,425,137,72,246,276,311,142,88,220,47,381,252,366,337,46,28,420,299,408,133,288,85,400,5,91,219,357,361,185,200,21,65,296,304,300,99,26,119,60,328,105,212,154,29,134,374,365,57,123,4,338,379,394,399,211,377,52,109,293,92,347,356,273,353,222,77,208,209,315,121,150,206,329,430,81,274,174,359,210,243,322,371,8,156,144,406,16,369,333,424,319,352,282,12,277,268,166,283,213,101,175,189,362,199,139,370,320,421,51,191,102,376,138,168,43,155,388,20,402,187,143,73,251,351,198,41,164,375,107,292,286,360,17,159,409,287,33,234,220,45,214,352,384,165,430,151,27,363,280,360,402,286,178,243,231,261,68,377,368,399,411,100,309,40,135,83,342,65,166,79,375,405,323,242,194,389,21,96,127,130,99,141,188,111,223,207,313,305,341,74,339,353,12,170,400,174,247,75,48,347,0,73,131,20,33,260,255,120,8,147,359,423,318,325,203,333,88,29,287,230,296,367,201,306,154,307,401,218,210,222,277,32,371,42,64,1,415,66,278,184,295,428,244,200,162,153,69,221,299,291,199,129,329,4,395,308,67,160,149,248,139,202,106,176,281,38,369,381,182,161,113,391,407,273,185,234,269,155,216,145,140,275,190,232,336,82,114,370,229,420,198,315,387,404,86,290,117,239,116,43,258,317,77,10,343,257,54,107,331,357,53,144,237,348,90,293,303,330,351,266,344,193,208,123,324,187,396,209,109,414,326,304,95,121,274,128,150,225,265,87,23,50,416,159,358,134,180,59,364,26,191,282,374,103,300,397,256,152,267,105,47,36,110,164,361,7,394,398,376,183,431,316,301,133,328,386,6,101,91,52,314,382,63,419,378,104,71,204,356,179,81,383,94,211,219,97,227,379,271,292,285,276,28,427,137,31,393,385,119,412,5,228,143,34,78,37,192,126,57,46,233,61,335,264,319,422,249,241,102,289,177,349,2,49,406,268,270,390,354,157,327,76,236,168,84,320,80,24,175,115,392,413,346,196,252,213,217,16,409,25,259,410,132,44,22,206,3,388,60,355,311,321,156,112,169,272,332,70,205,215,302,298,429,283,373,85,189,171,9,51,253,167,426,334,72,158,338,366,56,163,263,39,365,197,418,421,345,41,62,92,235,245,173,224,226,35,350,238,417,19,254,142,380,13,294,181,195,122,118,279,312,146,172,240,362,148,408,125,136,11,14,15,212,297,98,424,262,58,17,124,284,340,30,250,18,89,138,425,93,403,288,108,310,251,55,372,246,322,337,186,342,169,403,417,32,329,179,150,29,312,398,89,407,355,239,183,8,361,98,346,71,145,131,170,325,174,332,238,295,258,108,415,246,317,210,371,223,395,228,283,334,242,38,330,365,214,141,79,112,31,339,264,120,193,410,251,261,359,358,421,137,50,333,154,244,188,240,135,292,402,74,57,347,423,227,119,109,276,204,172,208,281,289,116,41,22,68,52,379,331,369,175,351,419,199,203,5,256,304,320,126,311,296,142,413,234,184,51,337,88,274,284,35,424,254,92,350,23,194,362,103,310,15,60,267,348,136,220,318,157,243,138,384,34,173,376,196,125,160,411,386,396,36,185,343,279,167,294,56,161,372,401,381,3,207,127,49,319,316,44,106,53,148,114,33,93,94,363,162,82,324,195,336,400,166,300,101,95,408,368,233,115,313,7,306,327,314,272,81,159,64,62,367,205,117,390,16,305,17,383,27,37,422,122,19,104,90,18,123,83,182,356,152,360,414,353,177,245,110,72,338,86,262,48,176,215,299,235,349,426,218,180,58,241,168,366,237,10,130,282,201,249,209,260,198,75,146,213,69,66,275,70,91,298,392,149,309,409,287,178,430,121,418,286,206,61,181,285,429,297,253,132,105,399,111,97,144,431,231,156,187,77,225,273,257,155,389,202,99,328,271,165,302,373,394,412,387,192,280,134,42,278,129,406,427,200,40,4,100,268,147,84,341,374,158,1,291,164,323,247,0,270,222,380,219,13,265,153,78,80,151,96,352,416,87,113,139,236,425,393,43,20,107,269,59,248,39,26,6,375,340,212,255,252,11,385,25,191,230,118,288,377,344,315,321,30,217,67,216,124,143,46,391,263,21,357,197,221,266,140,277,211,307,2,189,232,428,370,382,85,364,378,335,405,190,322,326,76,229,250,45,388,290,54,102,65,63,354,226,163,28,404,73,186,55,128,301,24,224,303,133,345,293,308,9,397,259,12,47,171,420,14,41,178,220,321,112,17,56,319,315,25,423,120,317,200,132,391,39,126,294,264,19,96,1,2,257,24,151,150,74,130,188,330,103,181,162,198,280,329,65,52,58,408,20,118,4,135,271,180,47,399,3,372,382,147,297,371,291,272,182,385,360,373,59,42,374,102,212,404,370,115,279,34,86,392,217,256,431,375,108,305,187,337,355,40,368,27,55,429,78,134,195,298,248,161,266,334,277,389,309,215,83,91,418,288,90,99,323,325,51,267,89,255,274,346,142,114,11,31,128,287,224,307,45,422,292,430,63,213,216,104,356,336,67,406,174,259,403,340,50,194,365,92,320,413,261,22,26,395,420,16,145,77,199,119,353,129,241,158,410,139,411,342,113,79,70,246,172,186,400,227,127,341,232,242,175,386,122,179,144,170,281,228,364,37,201,409,49,338,60,253,76,293,286,121,314,7,82,71,100,419,285,222,376,98,425,106,189,210,234,394,94,350,377,140,417,327,428,301,177,254,270,358,84,295,388,109,116,183,196,190,354,316,324,18,405,306,381,184,133,13,303,148,73,5,111,72,168,331,8,125,345,167,310,143,69,390,427,284,62,153,57,117,208,12,290,367,54,412,206,38,207,300,146,166,204,268,30,152,278,87,141,9,21,229,328,75,0,344,251,414,46,173,226,237,424,203,326,53,171,380,23,369,396,339,362,308,312,197,296,88,225,304,44,176,349,28,250,6,205,131,421,273,123,240,343,387,219,397,407,233,282,426,239,333,313,35,289,211,235,48,164,192,95,361,352,101,149,36,105,322,214,163,363,357,61,110,93,185,29,81,137,258,263,348,332,202,80,384,311,244,10,14,157,221,378,154,136,262,359,156,124,275,236,318,265,415,260,68,283,169,247,276,416,138,15,398,231,383,401,43,64,299,218,33,191,252,402,85,238,193,347,245,302,155,269,165,249,223,366,160,159,379,97,32,107,66,393,243,230,335,209,351,219,269,211,139,197,404,0,340,410,373,287,140,71,30,330,244,400,126,67,305,308,255,256,13,405,27,425,31,157,115,131,59,334,136,430,427,109,246,298,389,187,118,376,87,24,428,327,236,119,61,212,57,141,167,182,341,1,398,123,280,184,216,111,145,121,198,323,296,15,60,134,393,281,306,234,309,183,356,293,137,90,144,53,104,218,239,378,402,391,2,116,33,155,221,247,359,343,322,178,290,170,279,207,315,132,80,5,127,294,252,387,26,28,399,231,297,205,257,429,249,107,307,165,17,283,110,74,114,357,113,34,419,310,311,420,16,50,335,56,260,268,41,95,230,265,275,321,251,117,149,9,36,326,278,270,152,108,312,362,385,72,368,431,426,418,101,277,120,142,333,166,12,375,235,84,250,417,20,263,227,39,286,248,40,54,47,25,38,51,11,388,98,213,360,164,222,10,76,162,49,91,358,55,320,423,106,177,304,316,161,324,271,112,93,3,284,363,237,274,383,372,81,168,163,154,403,338,353,344,130,43,407,125,291,62,319,394,99,228,262,58,128,272,254,395,35,364,195,243,301,83,199,203,181,224,215,150,242,217,415,397,285,232,266,424,377,318,18,342,75,100,200,201,194,32,226,202,289,209,135,214,37,124,292,267,88,413,261,151,328,245,46,409,355,129,174,369,193,379,300,86,206,348,52,29,347,8,65,82,331,189,103,367,414,79,317,97,66,350,299,401,94,14,392,411,146,282,238,361,351,19,352,138,365,259,180,208,158,421,156,210,147,89,220,381,366,371,148,406,73,45,303,374,85,273,349,7,188,258,225,390,78,77,288,380,23,233,386,69,370,384,186,173,122,264,179,160,412,229,143,196,70,345,185,241,240,295,416,153,190,302,96,408,329,22,204,92,422,68,44,276,314,313,354,396,133,253,4,191,337,63,169,171,339,64,105,6,21,192,223,176,382,42,172,175,48,332,159,102,336,346,325,234,150,207,124,299,5,198,139,336,384,45,375,153,285,368,161,96,366,9,74,329,275,184,98,101,18,75,230,271,165,90,170,266,35,123,280,13,20,369,219,214,63,15,177,258,116,65,226,327,417,405,209,53,83,126,314,228,142,43,131,283,236,115,67,317,395,178,296,321,125,37,355,120,262,69,175,50,16,44,414,79,237,353,94,31,167,172,428,68,396,110,187,264,397,54,55,140,102,389,272,372,380,354,164,318,76,385,323,208,60,218,342,134,193,276,325,78,248,109,358,4,390,350,174,107,360,403,104,66,206,204,217,252,263,419,183,421,136,80,114,430,117,181,26,253,176,347,339,345,159,229,166,247,155,404,415,260,7,28,334,173,158,277,346,95,122,282,402,400,97,99,382,25,64,409,408,147,239,300,179,105,2,352,305,338,143,261,333,185,151,307,381,86,265,306,212,149,324,255,57,279,39,192,88,119,23,0,201,222,284,388,62,156,356,398,362,351,392,274,291,278,295,194,289,297,292,320,340,364,245,406,40,286,138,186,407,424,233,383,241,121,10,146,41,343,52,313,108,373,29,257,12,394,399,220,423,211,1,294,243,341,231,331,162,215,128,145,310,112,431,61,71,240,163,426,182,302,379,171,8,133,100,169,251,250,410,304,27,127,58,227,200,429,322,203,425,377,249,33,73,111,378,180,129,413,348,311,254,195,238,363,326,420,70,46,154,244,72,328,422,412,106,113,6,84,259,51,32,196,374,148,137,290,256,30,391,14,319,22,281,19,199,141,24,359,344,270,303,210,427,34,287,93,332,190,393,315,365,361,168,36,81,416,47,221,349,232,308,205,56,132,269,387,59,48,197,130,223,42,11,89,92,330,152,85,202,49,386,189,38,144,87,371,411,82,246,160,103,213,118,316,376,312,293,225,235,157,17,21,288,242,418,191,370,268,188,91,298,335,216,401,273,301,77,309,337,3,224,267,135,357,367,157,4,410,163,9,263,304,79,398,272,310,155,56,415,338,339,46,332,70,6,81,314,224,317,37,149,0,420,388,319,50,29,102,289,83,65,35,354,27,191,366,261,282,84,274,177,239,48,171,335,166,320,5,126,382,349,373,344,95,283,416,19,36,72,167,408,223,276,195,96,44,402,87,80,154,254,260,8,403,235,198,34,327,45,336,89,140,419,328,180,389,145,307,55,120,112,267,331,202,94,186,302,409,375,371,229,242,129,352,280,397,226,106,360,357,110,219,294,47,326,268,11,225,293,192,248,73,66,137,284,318,278,107,204,391,392,51,313,321,181,355,298,82,295,183,148,370,98,281,379,141,212,189,57,323,59,105,196,227,385,28,174,414,405,361,390,369,396,400,353,340,125,311,205,172,116,253,169,243,139,264,117,142,251,288,30,378,220,74,69,21,407,85,206,383,187,38,194,231,216,159,76,114,42,124,356,86,111,351,151,108,153,359,348,12,71,178,77,430,333,329,208,346,135,374,97,277,173,144,315,330,214,201,13,2,257,33,411,68,104,301,236,32,377,393,425,252,22,247,381,52,150,200,386,290,54,286,300,128,20,165,395,387,62,176,306,160,368,273,133,215,16,258,238,308,210,256,299,431,132,428,341,41,292,136,61,18,175,17,60,184,372,118,10,49,412,199,25,119,143,63,367,291,417,384,362,401,218,131,122,103,207,99,265,7,279,221,296,376,134,399,343,209,179,130,334,185,426,422,162,43,23,156,115,203,3,413,271,250,127,266,312,230,228,31,240,259,394,123,350,305,78,14,40,275,53,232,337,58,322,406,316,152,246,237,113,138,161,324,345,190,15,244,100,93,197,91,158,245,270,26,39,287,213,325,347,285,380,75,363,101,427,24,88,364,365,233,182,146,170,424,429,67,309,1,404,121,418,64,262,241,109,193,297,211,255,421,217,188,358,423,249,342,90,147,222,303,164,168,234,92,269,276,66,21,399,417,31,165,347,292,163,314,64,356,108,361,10,229,208,288,121,424,429,402,39,228,261,266,280,355,50,371,107,37,97,267,377,262,227,343,243,298,222,265,328,360,212,278,118,259,132,9,324,291,396,431,159,123,181,388,191,88,54,318,124,203,430,214,93,415,275,394,235,249,385,102,331,34,285,215,322,366,381,95,56,141,170,156,110,315,237,269,251,313,241,150,192,294,18,293,96,187,184,307,352,153,255,282,329,92,177,137,113,383,199,219,210,52,309,274,135,367,68,11,256,94,325,164,176,270,337,346,49,341,206,63,326,106,6,72,152,425,400,204,342,4,55,117,317,389,279,167,220,5,82,81,45,240,368,213,128,411,344,197,316,162,225,253,416,217,311,335,99,198,23,260,76,271,62,33,98,410,405,380,372,53,186,104,1,234,365,140,185,247,103,312,130,239,379,330,336,179,12,15,148,378,29,306,221,77,38,19,8,419,122,202,224,125,248,139,205,340,79,423,395,391,188,131,169,397,319,209,258,158,268,143,382,182,0,175,105,127,35,302,207,89,25,412,40,401,233,403,238,147,83,369,286,422,305,409,357,44,43,333,428,323,392,178,426,65,418,173,154,420,126,244,36,20,349,101,364,308,138,111,358,109,46,387,390,183,299,16,47,120,78,300,14,190,327,414,413,427,112,136,86,114,296,84,73,345,226,350,272,348,375,386,295,60,359,2,7,151,115,58,195,157,374,264,129,61,211,273,168,116,142,166,231,283,87,200,13,363,303,407,321,3,17,304,201,404,28,71,171,223,281,149,242,22,297,284,161,353,155,80,146,91,180,263,59,393,310,100,384,134,90,232,144,277,193,67,246,174,74,252,245,408,216,85,301,189,48,236,119,27,172,194,354,145,30,362,398,338,257,41,421,254,373,75,370,320,24,339,51,289,376,218,57,230,290,160,26,250,69,133,42,196,334,351,32,406,70,332,287
};
